Python 如何在pandas中基于groupby进行过滤逻辑
假设我有一个df,看起来像这样:Python 如何在pandas中基于groupby进行过滤逻辑,python,pandas,Python,Pandas,假设我有一个df,看起来像这样: df=pd.DataFrame({'Data1':['A','A','A','A','B','B'], '数据2':[100100200101100100], “状态”:[“开”、“开”、“关”、“关”、“开”、“关”], “计数”:[2,2,1,1,1,1,1], ‘总计’:[25,25,25,150,150]}) 如何添加条件并过滤掉传递的数据 对于Data1和Data2的每个唯一组合,检查有多少个“打开”状态,以及每个唯一组合的“打开”状态量是否小于某
df=pd.DataFrame({'Data1':['A','A','A','A','B','B'],
'数据2':[100100200101100100],
“状态”:[“开”、“开”、“关”、“关”、“开”、“关”],
“计数”:[2,2,1,1,1,1,1],
‘总计’:[25,25,25,150,150]})
如何添加条件并过滤掉传递的数据
对于Data1和Data2的每个唯一组合,检查有多少个“打开”状态,以及每个唯一组合的“打开”状态量是否小于某些阈值
条件:
- 如果总数>0,我需要至少1个“打开”
- 如果总数>100,我需要至少2个“打开”
+-------+-------+-------+--------+-------+
| Data1 | Data2 | State | Count | Total |
+-------+-------+-------+--------+-------+
| A | 200 | Off | 1 | 25 |
| A | 101 | Off | 1 | 25 |
| B | 100 | On | 1 | 150 |
| B | 100 | Off | 1 | 150 |
+-------+-------+-------+--------+-------+
注意事项:
- “计数”列已经计算了有多少“开”或“关”用于 数据1和数据2的每个唯一组合
- 每个唯一数据的总计相同1
+-------+-------+-------+--------+-------+
| Data1 | Data2 | State | Count | Total |
+-------+-------+-------+--------+-------+
| A | 200 | Off | 1 | 25 |
| A | 101 | Off | 1 | 25 |
| B | 100 | On | 1 | 150 |
| B | 100 | Off | 1 | 150 |
+-------+-------+-------+--------+-------+