Python 使用Pandas[带键列]将CSV与不同列组合
我试图在Python中组合两个CSV文件,每个CSV文件都有唯一的列,但两个CSV文件共享一个公共键列Python 使用Pandas[带键列]将CSV与不同列组合,python,pandas,csv,dataframe,concat,Python,Pandas,Csv,Dataframe,Concat,我试图在Python中组合两个CSV文件,每个CSV文件都有唯一的列,但两个CSV文件共享一个公共键列 Example CSV 1: Key Make Model 501 Audi A3 502 Audi A4 503 Audi A5 CSV 2: Key Engine 501 2.0T 502 2.0T 503 2.0T Combined Expected Result: Key Make Model Engine 501
Example
CSV 1:
Key Make Model
501 Audi A3
502 Audi A4
503 Audi A5
CSV 2:
Key Engine
501 2.0T
502 2.0T
503 2.0T
Combined Expected Result:
Key Make Model Engine
501 Audi A3 2.0T
502 Audi A4 2.0T
503 Audi A5 2.0T
我一直在查看StackOverflow/Google/Pandas文档,但没有找到我想要的确切内容。Pandas文档页面上提供的merge和concat示例与我试图实现的不同,因此我不确定我所要求的是否适用于Pandas
我已经将两个CSV文件中的选定列读入到单独的数据帧中,现在我想做的是基于键列将两个数据帧合并到单个数据帧中
Example
CSV 1:
Key Make Model
501 Audi A3
502 Audi A4
503 Audi A5
CSV 2:
Key Engine
501 2.0T
502 2.0T
503 2.0T
Combined Expected Result:
Key Make Model Engine
501 Audi A3 2.0T
502 Audi A4 2.0T
503 Audi A5 2.0T
您需要将CSV读入两个单独的数据帧,然后在“键”列上连接它们
import pandas as pd
df1 = pd.read_csv('csv1.csv')
df2 = pd.read_csv('csv2.csv')
df_final = df1.merge(df2, left_on = 'Key', right_on = 'Key')
Kacper Sobocinski的答案是正确的,您可以使用合并
import pandas as pd
data1 = {'Key': [501,502,503],
'Make': ['Audi','Audi','Audi'],
'Model': ['A3','A4','A5']}
data2 = {'Key':[501,502,503],
'Engine': ['2.0T', '2.0T','2.0T']}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
df = pd.merge(df1,df2, how = 'inner', on = 'Key')
print(df)
Key Make Model Engine
0 501 Audi A3 2.0T
1 502 Audi A4 2.0T
2 503 Audi A5 2.0T
谢谢,这就是我要找的。很高兴能帮上忙,欢迎来到Stack Overflow。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受此答案是否也适用于2个以上的csv文件?