首页 > 解决方案 > 是否有内置方法可以用字符串值替换 pandas 数据框中的布尔值?

问题描述

我尝试在 pandas(或 numpy)中找到工厂解决方案来解决布尔值替换。

我使用带有类型检查和内置函数的列表理解。

some_data = pd.Series([False, 0, True, 1])
tmp = [str(value).lower() if type(value) is bool else value for value in some_data]
some_new_data = pd.Series(tmp)

有没有其他解决方案?使用 pandas 或 numpy 的一些功能?

标签: pythonpandasnumpy

解决方案


使用numpy.where

# create mask
mask = some_data.apply(lambda x: isinstance(x, bool))

tmp = np.where(mask, some_data.astype(str).str.lower(), some_data.values)
some_new_data = pd.Series(tmp)
print(some_new_data)

输出

0    false
1        0
2     true
3        1
dtype: object

推荐阅读