如何将类似记录的位置添加到两个单独的csv文件中?

2024-05-19 11:03:55 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我刚开始使用pandas,我的任务是我有两个csv文件,我读取它们,比较并附加它们在两个文件中占据的行。我正在使用熊猫数据帧。现在我必须把它写回csv,用这些位置附加额外的列。我正在考虑使用dict或list并在末尾附加它们,但也许有更高效、更优雅的解决方案

df1_index = 0
df1['position'] = 0

for row in df1['Names']:
    ur = row.upper()
    df1_index += 1
    df2_index = 1
    for line in df2['Students']:
        ul = line.upper()
        if ur == ul:
            df1['position'].append(row + " in second file: " + str(df2_index) + " row.")
            print(row + " is also present in the second file in " + str(df2_index) + " row.")
            print(line + " is also present in the first file in " + str(df1_index) + " row.")
        df2_index += 1

编辑: 上述方法的效率很差,我不得不对问题进行概括

所以我有两个csv文件: csv1.csv:

  • 2010年12月10日,史蒂夫,乔布斯
  • 2010年12月20日,马斯克埃隆
  • 23 2011-01-02,拉里,第25页

csv2.csv:

  • 2015-01-03,史蒂夫·乔布斯,34岁
  • 2015年2月13日,埃隆·马斯克,27岁
  • 2015-01-17,拉里·佩奇,18岁
  • 2015年9月11日,史蒂夫·乔布斯,25岁

任务是按ofc的名称查找这两个文件中的相似之处,并添加一行(在新列中)和另一个文件中的索引。 现在,我提取列(从csv1合并2并作为新列追加,两者都作为数据帧),大写,并且可以在相反的文件中打印它们的位置(非常原始、嵌套循环和外部int索引)。熊猫是否提供了一些工具来满足我的需求?你对可能的解决办法有什么想法吗?我应该进一步了解什么?;)

预期输出,例如csv1:

  • 2010-12-10,史蒂夫,乔布斯,20,[1,4]
  • 2010年12月12日,马斯克埃隆,23
  • 2011-01-02,拉里,第25页

csv2:

csv2.csv:

  • 2015-01-03,史蒂夫·乔布斯,34,1
  • 2015-02-13,埃隆·马斯克,27
  • 2015-01-17,拉里·佩奇,18岁
  • 2015年9月11日,史蒂夫·乔布斯,25,1

Tags: 文件csv数据inforindexlineposition
1条回答
网友
1楼 · 发布于 2024-05-19 11:03:55

如果我理解正确,您可以:

# list of the values in the common column
list_common = df['common'].tolist()

# Get the index of the values matching in the other dataframes
matching_df1 = df.index[df1['Student'].isin(list_common)].tolist()
matching_df2 = df.index[df2['Student'].isin(list_common)].tolist()

输出列表将值的索引存储在其数据帧中。我希望这有帮助,从那里你可以使用最适合你的格式

相关问题 更多 >

    热门问题