【发布时间】:2019-01-08 04:12:12
【问题描述】:
我正在尝试根据 groupby 和 True 值的数量删除行。 每组,如果他们只有一个真值(sum() = 1),我希望删除那一行。
import pandas as pd
df = pd.DataFrame({'id': [1,1,1,2,2,2,3,3,3], 'value': [True, True, False, True, False, False, False, False, True]})
print (df)
id value
0 1 True
1 1 True
2 1 False
3 2 True
4 2 False
5 2 False
6 3 False
7 3 False
8 3 True
df.groupby('id')['value'].sum()
Out[571]:
id
1 2.0
2 1.0
3 1.0
id 1 & 3 符合条件,但我如何删除那些单个真实行,以便数据框变为:
print (df)
id value
0 1 True
1 1 True
2 1 False
3 2 False
4 2 False
5 3 False
6 3 False
【问题讨论】:
-
您的意思是 ids 2 & 3 符合条件?
标签: python pandas sum conditional pandas-groupby