为什么将系列连接到具有索引匹配列的数据帧不起作用



我想将一个系列附加到数据帧,其中系列的索引与数据帧的列匹配,使用 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

我所期望的当然是:

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

令我惊讶的是,pd.concat不是索引列感知的。那么,如果我想将系列作为新行连接到 DF,那么我只能使用 df.append 来代替,这是真的吗?

需要通过

to_frameSeries 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

或者使用放大设置:

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

最新更新