我有兩個csv文件,如下所示。根據列中的數據合併兩個CSV文件
CSV1
data13 data23 d main_data1;main_data2 data13 data23
data12 data22 d main_data1;main_data2 data12 data22
data11 data21 d main_data1;main_data2 data11 data21
data3 data4 d main_data2;main_data4 data3 data4
data52 data62 d main_data3 data51 data62
data51 data61 d main_data3 main_data3 data61
data7 data8 d main_data4 data7 data8
CSV2
id1 main_data1 a1 a2 a3
id2 main_data2 b1 b2 b3
id3 main_data3 c1 c2 c3
id4 main_data4 d1 d2 d3
id5 main_data5 e1 e2 e3
現在的問題是,我知道如何合併兩個CSV文件時,其中的一列恰恰是在這兩個文件是相同的。但我的問題有點不同。 CSV1中的第4列可能包含CSV2中的第2列。我想獲得一個CSV文件,如下
FINAL_CSV
id1 main_data1 a1 a2 a3 data13
id2 main_data2 b1 b2 b3 data3
id3 main_data3 c1 c2 c3 main_data3
id4 main_data4 d1 d2 d3 data7
id5 main_data5 e1 e2 e3
其中:
從兩列中的數據相匹配,並從第一次出現得到相應的行,並寫入csv文件。
2.當沒有匹配時,它可以將FINAL_CSV中的最後一列留空或寫入'NA'或任何此類。
3.當CSV1的第4列和第5列中的數據完全匹配時,它將返回該行而不是第一次出現。
我完全失去了如何做到這一點。幫助它的一部分也很好。任何建議,高度讚賞。
PS-我知道來自csv文件的數據應該用逗號分隔,但爲了清楚起見,我偏好製表符,儘管實際數據由逗號分隔。
編輯:實際上,'main_data'可以在CSV2中的任何列中,而不是在列2中。同樣的'main_data'也可以在多行中重複,然後我想獲得所有相應的行。
你能說清楚連接條件嗎?例如main_data1包含在CSV1的幾行中,但輸出僅包含一次 – 2014-11-21 00:16:16
對不起,沒有仔細閱讀,第一次發生只有 – 2014-11-21 00:38:16
這是否必須在python? – 2015-01-02 15:36:09