python - 在 Pandas Dataframe 中组合列的值和状态条件
问题描述
我有以下数据框:
import pandas as pd
df = pd.DataFrame({'a': ['1', '1', '1', '2', '2', '2', '3', '3', '4', '4'], 'b': ['True', 'False', 'True', 'True', 'True', 'True', 'True', 'True', 'False', 'False']})
a b
0 1 True
1 1 False
2 1 True
3 2 True
4 2 True
5 2 True
6 3 True
7 3 True
8 4 False
9 4 False
我想将a 列中的所有数字与相同的数字结合起来。此外,我想在b 列中说明,如果b的所有值都为真,则特定a将其设置为真,或者如果至少一个为假,则将其设置为假。
因此,结果应如下所示:
a b
0 1 False
1 2 True
2 3 True
3 4 False
我如何实现这一目标?我用 groupby 试过了,但我找不到合适的解决方案。
解决方案
用于GroupBy.all
测试所有值是否为True
s:
#if necessary convert strings to boolean
df['b'] = df['b'].map({'True':True, 'False':False})
df = df.groupby('a', as_index=False)['b'].all()
print (df)
a b
0 1 False
1 2 True
2 3 True
3 4 False
推荐阅读
- javascript - 登录codeigniter后如何设置cookies for remember me复选框?
- javascript - 使用 AJAX 发布和重定向后如何访问 PHP 变量?
- python - 如何规范化具有多个条件的 Pandas 数据列?
- algorithm - 给定 O(n) 个集合,找出其中不同的集合的复杂性是多少?
- python - Python:使用格式将大型文本文件转换为数据框
- javascript - HTML画布元素不显示图像
- r - 如何在 r 中通过 CATScore 提取顶级特征?
- google-apps-script - 是否有将谷歌文档转换为谷歌电子表格的功能?
- angular - 如何找到我的表单有一个真实状态的“必需”错误
- go - Golang 是否缓存对 URL 的“http/https”版本的请求?