2017-02-21 6 views
1

の元の順序を保つ:パンダ、連結データフレーム - 私は2つのデータフレームCONCATしようとしていますインデックス

df2: 
CU Pmt 2017-02-01 
h b  15 
h d  12 
h a  13 

とDF1を:私は

CU Pmt 2017-02-01 2017-02-02 
h b  15   20 
h d  12   23 
h a  13   22 
a b  NaN   16 
a d  NaN   13 
a a  Nan   14 

CU Pmt 'Total/Max/Min' 
h b  20 
h d  23 
h a  22 
a b  16 
a d  13 
a a  14 

ようにDF3こと両方にindex_col = [0,1]のマルチインデックスを使用する

は、これは私が持っているものです:アルファベット順にCUPmt(2つの索引列を)持っている

CU Pmt 2017-02-01 2017-02-02 
a a  NaN   14 
a b  NaN   16 
a d  Nan   13 
h a  13   22 
h b  15   20 
h d  12   23 

date = '2017-02-02' 
df1 = pd.read_csv(r'Data\2017-02\2017-02-02\Aggregated\Aggregated_Daily_All.csv', usecols=['CU', 'Parameters', 'Total/Max/Min'], index_col =[0,1]) 
df1 = df1.rename(columns = {'Total/Max/Min':date}) 

df2 = pd.read_csv(r'Data\2017-02\MonthlyData\February2017.csv', index_col = [0,1]) 
df3 = pd.concat([df2, df1], axis=1) 
df3.to_csv(r'Data\2017-02\MonthlyData\February2017.csv') 

しかし、DF3はとして出ています。新しい日付のために追加されたすべての新しいインデックスに対して、それらが最下部に追加されるように、元の順序を保持することはどのように可能ですか?

答えて

1

df1.indexの値がdf2.indexの値が含まれている場合はreindexを試すことができます。

df3 = pd.concat([df2, df1], axis=1).reindex(df1.index) 
print (df3) 
     2017-02-01 'Total/Max/Min' 
CU Pmt        
h b   15.0    20 
    d   12.0    23 
    a   13.0    22 
a b   NaN    16 
    d   NaN    13 
    a   NaN    14 
関連する問題