其實在這個問題上有很多部分。我通過查看其他堆棧溢出問題的答案來解決了一些問題。但是,仍然有一個小問題沒有解決。輸出csv文件傾向於按字母順序或其他順序排序,這不是我想要的。如何連接兩個csv文件並保持python中列的原始順序?
作爲一個例子,我將垂直連接兩個csv文件。這兩個csv看起來如下所示。
a.csv
B, A, C, E
1, 1, 1, 1
b.csv
B, A, D, C
2, 2, 2, 2
我希望得到的結果是
c.csv
B, A, D, C, E
1, 1, , 1, 1
2, 2, 2, 2,
首先,我看了他們到大熊貓的數據幀。
a = pd.read_csv("a.csv")
b = pd.read_csv("b.csv")
然後將它們連接起來,並通過
c = pd.concat([a, b], join='outer')
c.to_csv("c.csv", index=False)
輸出CSV看起來像
c.csv
A, C, D, B, E
1, 1, , 1, 1
2, 2, 2, , 2
有什麼辦法來解決這個問題寫爲CSV?我曾經想到了什麼樣的代碼答案Preserving column order in Python Pandas DataFrame
df.to_csv("dfTest.txt","\t",header=True,cols=["b","a","c"], engine='python')
不過,也有幾百列在我的csv文件,我不能手動寫下列名的順序。對於每組文件,列名都是不同的。我試過
set(a.columns.values).union(list(b.columns.values))
它也不起作用,因爲set會混亂列表。
你需要爲此使用熊貓嗎? –
您可以從第一個文件讀取列名,將其轉換爲字符串列表並將其放入'.to_csv'參數'cols'中。 – meetaig
是的。我使用熊貓,因爲我需要自動匹配兩個文件的列名稱。 – Chenlu