python - 数据框合并列操作
问题描述
我有一个这样的数据框:
A B C
1 1 1
2 2 2
3 3 3
4 1 1
我想将三列“合并”形成一个 D 列,规则是:如果行中至少有一个“1”,则 D 的值为“1”,否则为“0”。我怎样才能实现它?
解决方案
用于DataFrame.eq
比较值,DataFrame.any
用于检查每行至少一个True
,最后将布尔掩码转换为integer
s:
df['D'] = df.eq(1).any(axis=1).astype(int)
print (df)
A B C D
0 1 1 1 1
1 2 2 2 0
2 3 3 3 0
3 4 1 1 1
详情:
print (df.eq(1))
A B C
0 True True True
1 False False False
2 False False False
3 False True True
print (df.eq(1).any(axis=1))
0 True
1 False
2 False
3 True
dtype: bool
推荐阅读
- python - 是否可以在 Dask 中为特定任务选择工人?
- c - C:管道:如何正确使用管道传递动态 int 数组
- python - 尝试将我的文件推送到 heroku 时出现错误“git push heroku master ERROR”
- reactjs - 提交发布请求并在邮递员中工作时,仅在 reactjs 中出现 CORS 策略错误
- php - htaccess 重定向文件夹以防止直接访问
- python - 用管道填充某些列缺失值后,无法从数据框中删除
- vb.net - vb.net框架不使用webBrowser工具自动登录网站
- c# - 加密文件的密钥长度
- pybind11 - 带有需要与静态库链接的 C++ 的 pybind11
- python - 不允许对 tf.Tensor 进行迭代:此函数中禁用了 AutoGraph