将pandas Series作为新列添加到特定的Dataframe行

时间:2018-06-04 19:59:45

标签: python pandas dataframe

说我有一个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)可以正常工作,但会将系列值分配给所有行。

1 个答案:

答案 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