2015-09-12 21 views
10

私のgoogle-fuは、私のように思えるようなものではないようです。列の順序を保持する - Python PandasとColumn Concat

私は2つのデータセットを持っています。私はそれらをマージしたいと思います。これは.concatを使ってうまく動作します。問題は、.concatが列を並べ替えることです。データ検索の観点からは、これは簡単です。 "私はただファイルを開き、すぐに最も重要なコラムを見たい"という観点から、これは迷惑です。

File1.csv 
Name Username Alias1 
Tom  Tomfoolery TJZ 
Meryl MsMeryl  Mer 
Timmy Midsize  Yoda 

File2.csv 
Name Username Alias 1 Alias 2 
Bob  Firedbob Fire  Gingy 
Tom  Tomfoolery TJZ  Awww 

Result.csv 
    Alias1 Alias2 Name Username 
0 TJZ NaN  Tom  Tomfoolery 
1 Mer NaN  Meryl MsMeryl 
2 Yoda NaN  Timmy Midsize 
0 Fire Gingy Bob  Firedbob 
1 TJZ Awww  Tom  Tomfoolery 

結果は正常ですが、データファイルには1,000列あります。最も重要な2〜3人は今や真ん中にいます。このおもちゃの例では、「Username」を最初の列に、「Name」を2番目の列にすることができ、それぞれの下の値を明白に保つことができます。

また、メモとして、ファイルに保存すると、番号(0 1 2 0 1)も保存されます。あまりにもそれを防ぐ方法があれば、それはクールだろう。もしそうでなければ、削除するのが速いのだから大したことではない。

ありがとうございます!連結データフレームを想定し

答えて

8

次のようにあなたは、列の並べ替えを行うことができ、dfです:

important = ['Username', 'Name'] 
reordered = important + [c for c in df.columns if c not in important] 
df = df[reordered] 
print df 

出力:

 Username Name Alias1 Alias2 
0 Tomfoolery Tom TJZ NaN 
1  MsMeryl Meryl Mer NaN 
2  Midsize Timmy Yoda NaN 
0 Firedbob Bob Fire Gingy 
1 Tomfoolery Tom TJZ Awww 

番号[0, 1, 2, 0, 1]のリストは、データフレームのインデックスです。それらが出力ファイルに書き込まれないようにするには、to_csv()to_csv()のオプションを使用します。

df.to_csv('Result.csv', index=False, sep=' ') 
関連する問題