我有一个如下所示的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
答案 0 :(得分:1)
Pandas系列分配工作由 index 完成。由于old_df
仅包含索引0
,因此仅更新索引0
,即df
的第一行。
对于您的特定问题,您可以使用iat
并将标量分配给序列:
df['new_col'] = old_df['email'].iat[0]
之所以可行,是因为Pandas会将标量广播到整个系列,而与索引无关。