Pandas合并2 csv与类似的列但不同的标题名称

时间:2018-03-16 03:51:47

标签: python pandas csv

我想将2个csv文件与类似的列合并但标题名称不同。

a.csv:

input   songhere.mp3
output  songhere_22k.mp3

b.csv:

id name country
1 Cyrus MY
2 May US

我需要的是,c.csv:

user_id  gender 
1 female
2 male

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

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)

2 个答案:

答案 0 :(得分:0)

您可以将user_id中的df2列重命名为id。由于名称相同,因此不会重复。

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

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

df3 = df3.drop('user_id', axis=1)

答案 1 :(得分:0)

您可以使用pypcd.decode_rgb_from_pcl(pc.pc_data['rgb'])

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