我有一个数据框,如下所示,它有其他列,但这一列很重要:
df = pd.DataFrame({'A': ['foo','bar','baz','foo','bar','bar','baz','foo']})
我正在尝试创建另一列,然后将与列 A
匹配的数组值添加到新列中。
新列:df['B'] = np.nan
数组:arr = np.array([5,3,9])
尝试
我想将数组分配给列 A
中的所有 foo
df['B'] = np.where(df['A']=='foo',arr,np.nan) # ValueError: operands could not be
# broadcast together with shapes
# (8,) (3,) ()
我也尝试了以下方法:
df['B'][df['A']=='foo'].values = arr # AttributeError: can't set attribute
最后,
df['B'] = df['B'][df['A']=='foo'].map(arr) # TypeError: 'numpy.ndarray' object is not callable
期望的输出结果
A B
0 foo 5
1 bar NaN
2 baz NaN
3 foo 3
4 bar NaN
5 bar NaN
6 baz NaN
7 foo 9