pandas - 替换单个列中的非零值,熊猫数据框
问题描述
我有这个熊猫数据框: rls[20, 34, 21, 19] censored[260, 0, 0, 380] 我试图用 1s 替换被审查列中的非零值。我尝试了许多不同的方法,但它们要么返回相同的数据帧副本,要么同时更改 rls 和审查列,这不是我想要的。感觉替换方法应该可以,但是我不知道如何指定非零值 data_rls.censored.replace([(!=0), 0], [1, 0], inplace=True)
解决方案
欢迎来到 SO。请查看如何生成可重现的示例。
您可以使用该pd.where()
功能来解决您的问题。
import pandas as pd
df = pd.DataFrame({'a':[1,3,4,0,0,4,5],'b':[1,3,4,0,0,4,5]})
df.head()
a b
0 1 1
1 3 3
2 4 4
3 0 0
4 0 0
df['a'] = df['a'].where(df['a'] == 0, 1)
df
a b
0 1 1
1 1 3
2 1 4
3 0 0
4 0 0
5 1 4
6 1 5
推荐阅读
- java - Java 从 JWT 令牌中获取主题
- c# - Unity 错误“当前上下文中不存在名称‘ZipFile’”
- java - GridBagLayout 不显示组件
- javascript - 如何在特定设备上隐藏更多过滤器按钮?
- kubernetes - GKE 更新 calico-node-vertical-autoscaler 镜像版本
- c# - 如何将 json 数据映射到 xml 以从 azure 函数 c# 调用 webservice
- angular - 如何将数据推送到 Typescript 中的 BehaviourSubject?
- laravel - Laravel 路线 [events_page] 未定义。错误
- python - 如何根据这个公式扩展随机游走算法以包括预先分割的图像?
- c# - TCP/IP 数据包丢失和更正在我的代码中不起作用