【发布时间】:2018-04-26 10:19:50
【问题描述】:
我有两个 csv 文件,如下所示。
第一个文件:
abTestGroup,platform,countryCode,userId
group_control,ios,GB,aaaaaaaaaaa group_control,ios,GB,aaaaaaaaaaaa
group_control,ios,GB,aaaaaaaaaaa group_control,ios,GB,aaaaaaaaaaaa
group_test,android,GB,ccccccccccc
第二个文件:
dateActivity,productId,cost,userId
2018-03-02,specialpack,0.198,aaaaaaaaaaa
2018-03-03,specialpack,0.498,aaaaaaaaaaa
2018-03-02,specialpack,0.398,bbbbbbbbbbb
2018-03-02,特殊包,0.998,cccccccccccc
在这种情况下,他们有一个共同点,那就是userId。
我想合并这些文件并使用 Python (Pandas) 创建父子关系。
我使用了下面的脚本:
import pandas as pd
a = pd.read_csv('PARENT.csv', encoding = "UTF-8", mangle_dupe_cols=True, usecols=['abTestGroup','platform','countryCode','userId'])
b = pd.read_csv("CHILD.csv")
merged = b.merge(a, on='userId', how='inner')
merged = merged.drop_duplicates()
merged.to_csv("final_output.csv", index=False)
为了得到以下输出:
dateActivity,productId,cost,userId,abTestGroup,platform,countryCode
2018-03-02,specialpack,0.198,aaaaaaaaaaa,group_control,ios,GB
2018-03-03,specialpack,0.498,aaaaaaaaaaa,group_control,ios,GB
2018-03-02,specialpack,0.998,ccccccccccc,group_test,android,GB
userId'bbbbbbbbbbb' 不会出现在最终输出中,因为它在两个文件中都不存在。如何包含不匹配的行(不匹配的userIds)并将“其他”值分配给单元格?
【问题讨论】: