我试图使用df_merge
函数将两个csv文件及其公共列连接在一起,但事实是它们具有多个公共列。我可以修改我的代码来实现吗?
这是我的两个csv文件中的列的示例:
文件1:
A B C D E
文件2:
A Z B C R P D E
这是我的代码
df_merge = file2.merge(file1, left_on = "A", right_on = "E")
但是它似乎不起作用,因为我将在合并文件中得到重复的变量。
答案 0 :(得分:2)
首先导入pandas
库:
import pandas as pd
您可以阅读以下两个csv文件:
data = pd.read_csv('Train_Roll_Number.txt', sep=" ", header=None)
data1 = pd.read_csv('Train_RGB_Sketch.txt', sep=" ", header=None)
data.columns = ['A', 'E', 'B']
data1.columns = ['A', 'E', 'C']
我选择将它们存储到data
和data1
。现在,如果要在字段“ A”和“ E”上合并这些数据框,请使用:
data = pd.merge(data, data1, on=['A', 'E'])
在on
参数中,您可以指定要合并两个csv文件的字段列表。
答案 1 :(得分:1)
根据您的要求,您需要找到第一个公共列名并传递给on
运算符。然后只需使用merge
函数,如下所示:
import pandas as pd
CommonCols = [col for col in df1.columns if col in df2.columns]
data = pd.merge(df1, df2, on=CommonCols )
或
data = pd.merge(df1, df2, on=[col for col in df1.columns if col in df2.columns])