2016-06-23 5 views
-2

前に質問が投稿されましたが、要件が適切に伝えられていませんでした。ここでCSVの列の並べ替え

A B C D .... X Y Z 
1 0 0.5 5 .... 1 7 6 
2 0 0.6 4 .... 0 7 6 
3 0 0.7 3 .... 1 7 6 
4 0 0.8 2 .... 0 7 6 

X、YおよびZは999、1000年、10001列であり、A、B、C、Dは、第一、第二、第三及び第四のとおりです。私は1000の以上の列を持つCSVファイルを持っています。私は次のように列を並べ替える必要があります。 4列である

D Y Z A B C ....X 
5 7 6 1 0 0.5 ....1 
4 7 6 2 0 0.6 ....0 
3 7 6 3 0 0.7 ....1 
2 7 6 4 0 0.8 ....0 

は第一、1000年になり、1001th列は、2番目と3番目になり、他の列が右に応じてシフトしています。

+3

あなたが試みられてきたかを示す、なぜ多くの[関連]できます(http://stackoverflow.com/search?q=pandas+reorder+columns)の質問には、あなたの質問に答えないのですか?これは、単に列インデックスの順序を変更し、新しい順序を渡すことによってdfを '再インデックスする 'ことを要求します。 – EdChum

+0

Excelまたは同等のオープンソースを –

+0

@EdChumで使用します。どのように多くの列を並べ替えるのですか?一般的な方法はありますか?新しいPD DF = pd.read_csv( 'のtest.CSV') ncolsの= df.columns.tolist() COLSの=のncolsの[-1:]として –

答えて

1

したがって、カスタムの方法で列を並べ替える方法が問題です。例えば

次のDFを持っていて、以下の方法(インデックス)であなたの列の順序を変更したい:

5、3、残り...

DF

In [82]: df 
Out[82]: 
    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 [83]: cols = df.columns.tolist() 

In [84]: cols 
Out[84]: ['A', 'B', 'C', 'D', 'E', 'F', 'G'] 

In [88]: cols = [cols.pop(5)] + [cols.pop(3)] + cols 

In [89]: cols 
Out[89]: ['F', 'D', 'A', 'B', 'C', 'E', 'G'] 

In [90]: df[cols] 
Out[90]: 
    F D A B C E G 
0 7 5 1 0 0.5 1 6 
1 7 4 2 0 0.6 0 6 
2 7 3 3 0 0.7 1 6 
3 7 2 4 0 0.8 0 6 
+0

@DigantaBharali、それは助けましたか? – MaxU

+0

これは私が探しているものです。できます –

0
In [4]: df 
Out[4]: 
    A B C D X Y Z 
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 [5]: df.reindex(columns=['D','Y','Z','A','B','C','X']) 
Out[5]: 
    D Y Z A B C X 
0 5 7 6 1 0 0.5 1 
1 4 7 6 2 0 0.6 0 
2 3 7 6 3 0 0.7 1 
関連する問題