python - 在 DataFrame 中将 bool 值转换为字符串

标签 python pandas

源于this发布,但我发现解决方案存在一些问题。

使用 df = df.replace({True: 'TRUE', False: 'FALSE'}) , 如果值为 10它将被替换。我只想替换实际上是 True 的值或 False<class 'bool'> .

我该怎么做?

最佳答案

您可以使用 df.where 执行此操作,因此您只需替换 bool 类型。

import pandas as pd

mask = df.applymap(type) != bool
d = {True: 'TRUE', False: 'FALSE'}

df = df.where(mask, df.replace(d))

输入:

df = pd.DataFrame({'vals': [1, 0, 1.0, 'True', True, False],
                   'ids': [78, 'kitten', True, False, 'orange', 9]})

输出:

    vals     ids
0      1      78
1      0  kitten
2      1    TRUE
3   True   FALSE
4   TRUE  orange
5  FALSE       9

关于python - 在 DataFrame 中将 bool 值转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52336392/

相关文章:

python - 在 pandas dataframe map 函数中使用 eval 语句的正确方法

python - 仅过滤当月的数据集

python - 将 python 嵌入到 C++ 中无法按预期工作

python - 为什么 Django ManyToManyField 导致管理界面崩溃?为什么不创建直通表?

python - Django 数据迁移类型转换问题

python - 有没有办法将24小时时间格式转换为一天的四个类别或四个象限?

python - 如何使用另一列的 last_valid_index() 将 pandas 数据帧设置为 NaN

javascript - 如何在 django 模板中创建计时器 javascript 组件

python - 将 `sys.stdout` 重定向到文件或缓冲区

python - Pandas/Pyplot : How to plot by category 中的散点图