当前位置: 首页 > 知识库问答 >
问题:

如何排序和存储只有前3个位置从两个。CSV文件,然后将它们存储到两个列中。使用Python的CSV文件?

竺和洽
2023-03-14

对文件中的数据进行排序average2016。csv和平均值2017。csv。仅存储每个文件中前3个位置。前3个位置的数据将存储在一个文件中,命名为top3。csv。前三名中的每一列。csv文件将存储每年的结果。因此,排名前三。csv文件将包含2016列和2017列。

我正在使用Python 3.8与熊猫

我不知道该怎么办。我需要对这些文件中的数据进行排序。我只需要存储每个位置的前3个位置。CSV文件。排名前三的位置将是平均值前三位的位置。CSV文件。然后我必须将每个平均值文件中的前三个平均值存储到一个文件top3中。csv。新的。CSV文件,需要有两列,2016和2017。

我在为每个文件考虑这样的内容:

df = pd.read_csv('average2016.csv')

df.nlargest(3, ['SNOW'])

共有1个答案

沈永新
2023-03-14

我想我知道了。你需要两样东西,re和文件名。

import re 
year_format = re.compile(r'[0-9]{4}')
result = pd.DataFrame()
for filename in ['average2016.csv', 'average2017.csv']:
    file = pd.read_csv(filename)
    # value_counts() will return a sorted series base on occurance
    # convert to dict and get keys to get the most occured locations 
    all_loc = dict(file['NAME'].value_counts()).keys()
    # delete the above line, and uncomment the following:
    # all_loc = list(dict(file['NAME'].value_counts()).items())
    # all_loc.sort(key=lambda item: item[1], revese=True)
    # all_loc = [item[0] for item in all_loc]
    most_loc = list(all_loc)[:3]
    year = year_format.search(filename).group()
    result[year] = most_loc
result.to_csv('yourfilename.csv', index=False)
 类似资料:
  • 我有两个。名为all_cv的csv文件。csv和common_cv。csv文件。首先,我用pandas制作了两个csv文件,然后将数据保存到一个名为join_cv_common的新文件中。由熊猫制作。在那之后,我整理了join_cv_common。熊猫的csv文件如下所示,存储的数据存储到名为sorted_cv_common的新文件中。csv。我想重写pandas的这两个函数——concat和so

  • 从2年的数据中,找到AWND的前10个读数/行。将结果存储在文件中。csv文件并将其命名为top10AWND. csv。新文件将包含filteredData.csv的所有列,但只有前10个AWND。 过滤的一小部分ata.csv: 我正在使用Python 3.8和Pandas。 我需要从我的Filteredata中找到AWND的前10个读数。csv文件。然后,我需要将结果存储在一个新文件中。新文件

  • 给定一个文件夹,其中包含多个具有不同列长度的csv文件 必须使用python将它们合并到单个csv文件中,并将文件名打印为一列。 输入:https://www.dropbox.com/sh/1mbgjtrr6t069w1/AADC3ZrRZf33QBil63m1mxz_a?dl=0 输出:

  • 示例我有这两个csv,如何覆盖列的值在a.csv或替换,如果它匹配列中的字符串在a.csv和b.csv 如何输出:或者如何覆盖 我正在尝试使用熊猫,但我不知道接下来会发生什么

  • 问题内容: 我试图获得两个计数,然后将这两个计数相除,以得出我所计数的项目的比率。我在这里看到了这篇文章,并尝试了。我的结果出现错误,没有错误消息,只是错误的数字。我正在使用SQL Server 2008 这是我的代码: 计数正确产生并显示,但是对于比率,我为0,并且不确定为什么会得到此值。 谢谢你, 问题答案: 使用 SQL Server认为A.NUM / A.DENOM是int,因为A.NUM

  • 我需要传递两种不同的数据类型,一种是食物对象,另一种是整数。 我将这些作为食物对象及其各自的数量传递给餐馆类方法来准备订单。我应该用这些属性创建另一个类,还是有其他方法?