用数组的每个值替换每列pandas数据帧

时间:2015-12-10 17:05:21

标签: python pandas

df是这样的,

     A    B    C
0  NaN  150 -150
1  100  NaN  150
2 -100 -150  NaN
3 -100 -150  NaN
4  NaN  150  150
5  100  NaN -150

另一个数组是数组([1,2,3])

我想用数组中的每个值替换每列中的非空值,结果将是,

      A     B     C
0   NaN   2     3
1   1     NaN   3
2   1     2     NaN
3   1     2     NaN
4   NaN   2     3
5   1     NaN   3

如何以简单的方式实现这一目标?我写了类似的东西,

df[df.notnull()] = np.array([1,2,3])
df[df.notnull()].loc[:,] = np.array([1,2,3])

但一切都行不通。

1 个答案:

答案 0 :(得分:1)

怎么样:

>>> (df * 0 + 1) * arr
    A   B   C
0 NaN   2   3
1   1 NaN   3
2   1   2 NaN
3   1   2 NaN
4 NaN   2   3
5   1 NaN   3