为什么使用索引匹配列将 Series 连接到 DataFrame 不起作用?

Vim*_*Vim 7 python concatenation append dataframe pandas

我想将一个 Series 附加到 DataFrame 中,其中 Series 的索引使用 与 DataFrame 的列匹配pd.concat,但它给了我惊喜:

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
Run Code Online (Sandbox Code Playgroud)

我所期望的当然是:

df.append(sr)
Out[14]: 
   a  b
1  1  2
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,它pd.concat不知道索引列。那么,如果我想将一个Series作为新行连接到DF,那么我只能使用它吗df.append

jez*_*ael 11

需要DataFrame来自Seriesbyto_frame和转置:

a = pd.concat([df, sr.to_frame(1).T])
print (a)
   a  b
1  1  2
Run Code Online (Sandbox Code Playgroud)

细节:

print (sr.to_frame(1).T)
   a  b
1  1  2
Run Code Online (Sandbox Code Playgroud)

或者使用放大设置

df.loc[1] = sr
print (df)
   a  b
1  1  2
Run Code Online (Sandbox Code Playgroud)