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

Why does concat Series to DataFrame with index matching columns not work?

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

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 不支持索引列。那么,如果我想将一个系列作为一个新行连接到一个 DF,那么我只能使用 df.append 来代替吗?

需要从 Seriesto_frameDataFrame 并转置:

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

"df.loc[1] = sr" 将删除不在 df

中的列
df = pd.DataFrame(columns = ['a','b'])
sr = pd.Series({'a':1,'b':2,'c':3})
df.loc[1] = sr

df 会像:

   a  b
1  1  2