2016-03-21 15 views
1

をソート:私が欲しいしかし追加新しいパンダDATAFRAME私は古いものに新しいデータフレームを追加

 d c b 
Ohio 0.0 1.0 2.0 

     b d c 
Utah 0.0 1.0 2.0 

     b c d 
Ohio 2.0 1.0 0.0 
Utah 0.0 2.0 1.0 

import numpy as np 
import pandas as pd 
from pandas import Series 
from pandas import DataFrame 

df1 = DataFrame(np.arange(3.).reshape((1, 3)), columns=list('dcb'), index=['Ohio']) 
df2 = DataFrame(np.arange(3.).reshape((1, 3)), columns=list('bdc'), index=['Utah']) 
print df1 
print df2 
print pd.concat([df1, df2]) 

それから私はこのようになりましたあなたはvariabに元の順序を保存することができます

 d c b 
Ohio 0.0 1.0 2.0 
Utah 1.0 2.0 0.0 

答えて

3

join_axes引数を使用しますHYRYの答え@

pd.concat([df1, df2], join_axes=[df1.columns]) 
+0

それは素晴らしいです!大いに感謝する! (^ω^) – Osora

2

:結果のカラムには、「BCD」としてではなく、原点としてのような「DCB」をソートしませんルして、合成後、それを再適用:

df1 = DataFrame(np.arange(3.).reshape((1, 3)), columns=list('dcb'), index=['Ohio']) 
orig_column_order = df1.columns 
df2 = DataFrame(np.arange(3.).reshape((1, 3)), columns=list('bdc'), index=['Utah']) 
combined = pd.concat([df1, df2], keys=list('dbc')) 
combined = combined[orig_column_order] 
print(df1) 
print(df2) 
print(combined) 

は与える:

 d c b 
Ohio 0.0 1.0 2.0 
     b d c 
Utah 0.0 1.0 2.0 
      d c b 
d Ohio 0.0 1.0 2.0 
b Utah 1.0 2.0 0.0 
+0

すると、より簡潔です。でもありがとう!それは実際に動作します! – Osora

+0

そして私の質問では間違いのために申し訳ありません。最後の行で 'keys = list(' dbc ')'を削除したと思っていましたが、今度は 'print pd.concat([df1、df2]、keys = list(' dbc ' )) 'それはそうだった。混乱を招いて申し訳ありません。 – Osora

関連する問題