我有一个熊猫数据帧df
看起来像这样:熊猫:集团具有/过滤烦恼
| Index | Item | Value |
+---------+------------+-------------+
| 0 | 1024 | 20 |
| 1 | 1024 | 27 |
| 2 | 1024 | 19 |
| 3 | 4096 | 44 |
| ... | ... | ... |
现在我可以GROUPBY该数据帧由项目列和值进行一些聚合:
grouped = df.groupby(df['Item']).agg({'Value':['median', 'mean', 'std', 'count']})
如果我现在考虑这样做分组对象,它看起来像一个堆叠数据帧:
grouped.head()
| | Value |
+--------+-----------------------------+
| | median | mean | std | count |
+--------+--------+------+-----+-------+
| Item | | | | |
+--------+--------+------+-----+-------+
| 1024 | 20 | 22.0 | 4.3 | 3 |
| 4096 | 44 | 44.0 | NaN | 1 |
+--------+--------+------+-----+-------+
我现在想只过滤分组的项目,其例如具有计数> 1,所以我尝试了以下内容:
filtered = grouped.filter(lambda x: x['count'] > 1)
但我得到一个:类型错误:“功能”对象不是可迭代
我也试过
filtered = grouped.filter(lambda x: x.Value.count > 1)
或
filtered = grouped[grouped.Age.count > 1]
但最后一个只能扔s KeyError:True
如何在SQL中实现这种过滤,就像编写GROUP BY
/HAVING
子句一样,当我想过滤pandas中的聚合分组表时?
我怎么能写一个查询,只返回中位数==的行?
谢谢。
感谢您的回答。 – Regenschein
@Regenschein感谢您纠正 - 复制粘贴:) – knagaev