我有一個熊貓數據幀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