実際、この質問には多くの部分があります。私は他のスタックオーバーフローの質問の答えを見ていくつかの部分を解決しました。しかし、まだ解決されていない小さな問題が1つあります。出力されたcsvファイルは、アルファベット順に並べ替える傾向があります。2つのcsvファイルを連結してPythonの列の元の順序を保持する方法は?
例として、2つのcsvファイルを垂直方向に連結します。 2つの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")
そして、出力CSVが
c.csv
A, C, D, B, E
1, 1, , 1, 1
2, 2, 2, , 2
のように見えるそれらを連結し、
c = pd.concat([a, b], join='outer')
c.to_csv("c.csv", index=False)
により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))
を試してみました。
これにはパンダを使用する必要がありますか? –
最初のファイルから列名を読み込み、文字列リストに変換して '.to_csv'引数' cols'に入れることができます。 – meetaig
はい。私は2つのファイルの列名を自動的に一致させる必要があるので、私はパンダを使用しました。 – Chenlu