如何防止熊猫仅将一个df的值分配给另一行的另一列?

时间:2019-01-13 23:49:01

标签: python python-3.x pandas dataframe

我有一个如下所示的df:

id   col1     col2
1    2         3 
4    5         6
7    8         9 

当我去添加一个新列并分配一个像这样的值时:

df['new_col'] = old_df['email']

分配仅将值分配给第一个,如下所示:

id   col1     col2   new_col
 1    2         3     a@a.com
 4    5         6     NaN
 7    8         9     NaN

如何对所有行进行分配,如下所示:

id   col1     col2   new_col
 1    2         3     a@a.com
 4    5         6     a@a.com
 7    8         9     a@a.com 

编辑:

old_df:

id   col3     col4   email
 1    2         3     a@a.com

1 个答案:

答案 0 :(得分:1)

Pandas系列分配工作由 index 完成。由于old_df仅包含索引0,因此仅更新索引0,即df的第一行。

对于您的特定问题,您可以使用iat并将标量分配给序列:

df['new_col'] = old_df['email'].iat[0]

之所以可行,是因为Pandas会将标量广播到整个系列,而与索引无关。