说我有一个Dataframe
df = pd.DataFrame({'A':[0,1],'B':[2,3]})
A B
0 0 2
1 1 3
然后我使用来自df
第一行的输入但是与现有df
s = pd.Series ({'C':4,'D':6})
C 4
D 6
现在我想将s
添加到df.loc[0]
,其中键成为新列,并且值仅添加到第一行。 df的最终结果应如下所示:
A B C D
0 0 2 4 6
1 1 3 NaN NaN
我该怎么做?我发现的类似问题似乎只是针对一个列进行此操作,或者只是将系列添加为DataFrame末尾的新行,而不是通过添加系列中的多个新列来更新现有行。
我已经尝试了df.loc[0,list(['C','D'])] = [4,6]
,这是在另一个答案中建议的,但仅当['C','D']
已经是Dataframe中的现有列时才有效。 df.assign(**s)
可以正常工作,但会将系列值分配给所有行。
答案 0 :(得分:4)
join
:
df.join(pd.DataFrame(s).T)
A B C D
0 0 2 4.0 6.0
1 1 3 NaN NaN
或使用 concat
pd.concat([df, pd.DataFrame(s).T], axis=1)
A B C D
0 0 2 4.0 6.0
1 1 3 NaN NaN