python - 是否有内置方法可以用字符串值替换 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 的一些功能?
解决方案
使用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
推荐阅读
- node.js - Twilio Taskrouter:如何防止队列中的最后一个工作人员被重新分配拒绝任务?
- vb.net - DataGridView 中不需要的名称列 - 我怎样才能摆脱它?
- python - 来自 group.keys 的 Pandas 组抛出 KeyError
- javascript - 检查组合链内的字段是否未定义
- powershell - 使用 Invoke-Command 时身份验证如何工作?
- amazon-web-services - 限制 IAM 用户访问特定 Cognito 用户池
- javascript - 为什么我的代码在 innerHtml 上返回“未定义”?
- c++ - 检索字符并以相反顺序返回的递归函数c++
- command - 如何在 U-Boot CLI 中测试命令的返回
- python - 为什么 dataframe.show() 在 PyCharm 中使我的程序崩溃,但在终端中却没有