我有一个4 csv文件从网上商店数据库导出,我需要合并他们的列,我可能会设法单独做。但问题是要匹配正确的列
第一个文件:
"ep_ID","ep_titleCS","ep_titlePL".....
"601","Kancelářská židle šedá",NULL.....
...
第二个文件:
"pe_photoID","pe_productID","pe_sort"
"459","603","1"
...
第三个文件:
"epc_productID","epc_categoryID","epc_root"
"2155","72","1"
...
第四个文件:
"ph_ID","ph_titleCS"...
"379","5391132275.jpg"
。。。你知道吗
我需要匹配这些行,以便将具有相同“ep\u ID”和“epc\u productID”的行合并在一起,并将具有相同“ph\u ID”、“pe\u photoID”的行也合并在一起。我真的不知道从哪里开始,希望我写的可以理解
更新: 我正在使用:
files = ['produkty.csv', 'prirazenifotek.csv', 'pprirazenikategorii.csv', 'adresyfotek.csv']
dfs = []
for f in files:
df = pd.read_csv(f,low_memory=False)
dfs.append(df)
first_and_third =pd.merge(dfs[0],dfs[1],left_on = "ep_ID",right_on="pe_photoID")
first_and_third.to_csv('new_filepath.csv', index=False)
好的,这段代码可以工作,但它以另一种方式做了两件事:
例如,当文件1中有一行ID=1,而下一个文件2中有5行bID=1时,它会在最后一个文件中创建5行,我希望有一行在第二个文件中的每一行bID=1中都有多个值。有可能吗?
它似乎正在删除一些行。。。除非我把“复制品”处理掉。。。
您可以使用
pandas
的merge
方法将csv合并在一起。在您的问题中,您只提供第1和第3个文件之间的密钥,以及第2和第4个文件之间的密钥。不确定是否需要一个包含所有键的巨型表,如果需要,则需要找到另一个中间键,可能是尚未列出的(?)。你知道吗如果要将数据帧保存回文件,可以执行以下操作:
index=False
假设数据帧上没有索引集,并且不希望数据帧的行号包含在最终csv中。你知道吗相关问题 更多 >
编程相关推荐