【发布时间】:2018-03-11 05:31:55
【问题描述】:
我有一堆从关系数据库中提取的大型 csv 文件。例如,我有 customers.csv 、 address.csv 和 customer-address.csv 映射关系的键值。我在这里找到了有关如何合并文件的答案:
Python/Panda - merge csv according to join table/csv
所以现在我的代码如下所示:
df1 = pd.read_csv(file1)
df2 = pd.read_csv(file2)
df3 = pd.read_csv(file3)
df = (df3.merge(df1, left_on='CID', right_on='ID')
.merge(df2, left_on='AID', right_on='ID', suffixes=('','_'))
.drop(['CID','AID','ID_'], axis=1))
print (df)
现在我注意到我的文件具有一对多关系,并且当一个键有多个匹配项时,pandas 上面的代码可能会覆盖值。
有没有一种方法可以连接具有一对多(多对多)关系的文件?我正在考虑为每个外键创建一个完整的(冗余)行。所以基本上是非规范化。
【问题讨论】:
标签: data-structures denormalization