[英]Combine values of columns and state condition in Pandas Dataframe
我有以下 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 列中的所有数字与相同的数字结合起来。 此外,我想 state 在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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.