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

将定义集中的值设置为 Pandas 数据框中列的给定值(f.e. NaN)

Python Pandas 查找所有值为 NaN 的所有行

使用 Pandas 进行数据操作 [重复]

Pandas使用列标题作为值将多个列转换/合并为单个列