0

私は 2 つの csv データファイルを持っています。各行には 100% 一意の要素があります (行は同じ順序ではないことに注意してください)。

CSV1

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

CSV2

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

望ましい出力:

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

UniqueElement の一致に基づいて、両方の csv のデータがマージされる最終的な CSV を作成する必要があります。

4

1 に答える 1

7

誰かがおそらく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)

生産する

$ 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

@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)

または、インデックスを に設定してUniqueElmentマージすることもできます。これにより、データのエラーに対してもう少し堅牢になります。要点は、このような操作には数行程度しかかからないということです。

于 2013-10-19T03:03:07.520 に答える