その後、列の順序を変更し、to_csv
を使用してファイルを書き換えるpandas.read_csv
を使用してファイルを読むことができます:
import pandas as pd
df = pd.read_csv(your_file)
ncols = 3
cols = df.columns[-ncols:].tolist() + df.columns[:-ncols].tolist()
df[cols].to_csv(your_file)
または1行で:
(pd.read_csv(your_file)
[df.columns[-ncols:].tolist() + df.columns[:-ncols].tolist()]
.to_csv(your_file, index=False)
)
デモ:
In [12]: ncols = 3
In [13]: cols = df.columns[-ncols:].tolist() + df.columns[:-ncols].tolist()
In [14]: cols
Out[14]: ['E', 'F', 'G', 'A', 'B', 'C', 'D']
In [15]: df
Out[15]:
A B C D E F G
0 1 0 0.5 5 1 7 6
1 2 0 0.6 4 0 7 6
2 3 0 0.7 3 1 7 6
3 4 0 0.8 2 0 7 6
In [16]: df[cols]
Out[16]:
E F G A B C D
0 1 7 6 1 0 0.5 5
1 0 7 6 2 0 0.6 4
2 1 7 6 3 0 0.7 3
3 0 7 6 4 0 0.8 2
これ小さなファイルに対してのみ動作します。 1000列のファイルでは、すべての列名を書き留めることはできません。より良い方法はありますか?最後の10列を1000列ファイルの前に持っていきたいとします。どのようなアプローチが必要ですか? –
@DigantaBharaliこれはプログラマチックに行うことができます。あなたはすべての列名を持つリストであるreader.fieldnamesをコピーして、それをあなたが望むように整理します。 'old_column = reader.fieldnames; new_column = old_column [-10:0] + old_column [0:-10] ' – Sorin