2017-11-03 6 views
1

私はシリーズのインデックスはpd.concatを使用してデータフレームの列に一致するが、それは驚きを私に与えDATAFRAMEにシリーズを追加したい:インデックス一致列を持つDataFrameへのconcat Seriesが機能しないのはなぜですか?

df = pd.DataFrame(columns=['a', 'b']) 
sr = pd.Series(data=[1,2], index=['a', 'b'], name=1) 
pd.concat([df, sr], axis=0) 
Out[11]: 
    a b 0 
a NaN NaN 1.0 
b NaN NaN 2.0 

私は何を期待することはもちろんです:

df.append(sr) 
Out[14]: 
    a b 
1 1 2 

それは本当に驚き私はpd.concatはインデックス列を認識していません。ですから、SeriesをDFの新しい行として連結したい場合は、代わりにdf.appendしか使用できません。

+0

が '1'の軸= –

+0

@juanpaで試してみてください。 arrivillagaもうまくいきませんでした。それが分かるように、axis = 0のときと同じ出力を持っています。 – Vim

答えて

2

ニードto_frameによってSeriesからDataFrameと移調:

a = pd.concat([df, sr.to_frame(1).T]) 
print (a) 
    a b 
1 1 2 

詳細:

print (sr.to_frame(1).T) 
    a b 
1 1 2 

または使用setting with enlargement

df.loc[1] = sr 
print (df) 
    a b 
1 1 2 
+0

ありがとう!最後の方法が最高です。 – Vim

+0

はい、正確です。どういたしまして! – jezrael

関連する問題