Pandas将2个csv与一个类似的列合并,但标题nam不同

2024-06-11 20:27:55 发布

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

我想合并2个csv文件与一个相似的列,但不同的头名称。在

a.csv文件:

id name country
1 Cyrus MY
2 May US

b.csv:

^{pr2}$

我需要的是,c.csv:

id name country gender
1 Cyrus MY female
2 May US male

但是当我使用下面的代码时得到的结果

import csv
import pandas as pd

df1 = pd.read_csv('a.csv')
df2 = pd.read_csv('b.csv')

df3 = pd.merge(df1,df2, left_on=['id'],right_on=['user_id'], how='outer')
df3.to_csv('c.csv',index=False)

我得到的结果是:

id name country user_id gender
1 Cyrus MY 1 female
2 May US 2 male

Tags: 文件csvnameimportidmygendercountry
2条回答

您可以使用merge

df1.merge(df2,left_on='id',right_on='user_id')
Out[35]: 
   id   name country  user_id  gender
0   1  Cyrus      MY        1  female
1   2    May      US        2    male

concat

^{pr2}$

您可以将df2中的user_id列重命名为id。因为名字不一样。在

df2 = pd.read_csv('b.csv').rename(columns={'user_id': 'id'})
df3 = pd.merge(df1, df2, on='id', how='outer')

否则,您可以在合并后删除user_id列。在

^{pr2}$

相关问题 更多 >