SMN*_*LLY 0 python csv merge element python-2.7
我有两个csv数据文件,其中每一行都有一个100%的唯一元素(注意行的顺序不一样),例如
title1,title2,title3,UniqueElment,title4,title5
data,data,data,dasasd1245,data,data
data,data,data,dasasd1395,data,data
data,data,data,dasasd2594,data,data
data,data,data,dasasd9587,data,data
Run Code Online (Sandbox Code Playgroud)
titlea,titleb,titlec,titled,titlee,titlef,UniqueElment,titleg,titleh,titlei
text,text,text,text,text,text,dasasd1245,text,text,data
text,text,text,text,text,text,dasasd2594,text,text,data
text,text,text,text,text,text,dasasd1395,text,text,data
text,text,text,text,text,text,dasasd9587,text,text,data
Run Code Online (Sandbox Code Playgroud)
title1,title2,title3,UniqueElment,title4,title5,titlea,titleb,titlec,titled,titlee,titlef,UniqueElment,titleg,titleh,titlei
data,data,data,dasasd1245,data,data,text,text,text,text,text,text,dasasd1245,text,text,data
data,data,data,dasasd1395,data,data,text,text,text,text,text,text,dasasd1395,text,text,data
data,data,data,dasasd2594,data,data,text,text,text,text,text,text,dasasd2594,text,text,data
data,data,data,dasasd9587,data,data,text,text,text,text,text,text,dasasd9587,text,text,data
Run Code Online (Sandbox Code Playgroud)
我需要创建一个最终的CSV,其中来自两个csvs的数据基于匹配UniqueElement而合并在一起.
有人可能会写一个csv
基于答案的答案,所以我会给出pandas
比较的方法:
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
merged = df1.merge(df2, on="UniqueElment")
merged.to_csv("merged.csv", index=False)
Run Code Online (Sandbox Code Playgroud)
哪个产生
$ cat merged.csv
title1,title2,title3,UniqueElment,title4,title5,titlea,titleb,titlec,titled,titlee,titlef,titleg,titleh,titlei
data,data,data,dasasd1245,data,data,text,text,text,text,text,text,text,text,data
data,data,data,dasasd1395,data,data,text,text,text,text,text,text,text,text,data
data,data,data,dasasd2594,data,data,text,text,text,text,text,text,text,text,data
data,data,data,dasasd9587,data,data,text,text,text,text,text,text,text,text,data
Run Code Online (Sandbox Code Playgroud)
如果像@beroe所说的那样,你想要冗余UniqueElment
列,这也很容易 - 我们只需要对它们进行排序以确保它们处于相同的顺序然后将它们连接起来:
df1 = df1.sort("UniqueElment").reset_index(drop=True)
df2 = df2.sort("UniqueElment").reset_index(drop=True)
merged = pd.concat([df1, df2], axis=1)
Run Code Online (Sandbox Code Playgroud)
或者,我们可以设置索引UniqueElment
和合并等,这对于数据中的错误会更加健壮.关键是,像这样的操作只需要几行左右.