【发布时间】:2022-01-24 03:07:14
【问题描述】:
假设如下数据框:
import pandas as pd
import numpy as np
vals = [1, 2, 3, 4, 5]
df = pd.DataFrame({'val': vals})
df['val'][[0, 3]] = np.nan
给予:
val
0 NaN
1 2.0
2 3.0
3 NaN
4 5.0
我需要能够用 2D numpy 零数组替换 val 列中的 NaN 值。当我执行以下操作时:
z = np.zeros((10, 10))
df['val'][df['val'].isnull()] = z
数组被转换为值为 0.0 的标量:
val
0 0.0
1 2.0
2 3.0
3 0.0
4 5.0
我真的需要维护数组(在这种情况下,每个 NaN 值 - 来自原始数据帧的第 0 行和第 3 行 -
应替换为 10x10 的零数组)。我尝试先转换为object 类型
df = df.astype(object)
df['val'][df['val'].isnull()] = z
没有成功。哇哇哇
【问题讨论】:
-
请您添加您预期输出的样本吗?
-
从例子中看的很清楚了吧?
-
那么对于
val中的0,你想要z的第0 个数组,对于val中的3,你想要来自z的第3 项吗? -
在下面查看我非常简单的答案...
标签: python arrays pandas dataframe numpy