Pandas 映射将所有值返回为 NaN [重复]
Posted
技术标签:
【中文标题】Pandas 映射将所有值返回为 NaN [重复]【英文标题】:Pandas map returning all values as NaNs [duplicate] 【发布时间】:2019-10-12 03:26:18 【问题描述】:当映射目标变量时,“糖尿病”(假病人没有糖尿病,真病人有糖尿病)到 0(假)和 1(真)。所有条目都以 NaN 形式返回
我认为“糖尿病”可能不是真正的字符串,我需要先转换为字符串。尝试了以下代码:
diab_data['diabetes'] = diab_data['diabetes'].astype(str)
diab_data["diabetes"] = diab_data["diabetes"].map('False':0, 'True':1)
我需要以下值为 0(假)或 1(真)。所有值都返回为 NaN
原始输出:
patient diabetes
0 False
1 True
2 True
3 True
4 False
映射后的输出:
patient diabetes
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
【问题讨论】:
***.com/a/27362540 这很奇怪,但您的解决方案应该可以工作...... 【参考方案1】:你不需要地图:
diab_data["diabetes"].astype(int)
另外,您使用 bool 值作为字符串,使用 True
而不是 'True'
,例如在 map()
下:
df["diabetes"].map(False:0, True:1)
【讨论】:
成功了,谢谢。是的,我不需要在变量值周围加上“”或“”,因为它们是布尔值。那是罪魁祸首以上是关于Pandas 映射将所有值返回为 NaN [重复]的主要内容,如果未能解决你的问题,请参考以下文章
pandas使用replace函数将所有的无穷大值np.inf替换为缺失值np.nan使用pandas的fillna函数用经验固定值填充缺失值np.nan
Pandas:根据另一列的键在现有列上映射字典值以替换 NaN