web-dev-qa-db-ja.com

Python pandas条件に基づいたデータフレームグループ

私の質問は簡単です。データフレームがあり、列に基づいてgroupby結果を取得し、次のようなサイズを取得します。

df.groupby('column').size()

問題は、サイズが[〜#〜] x [〜#〜]より大きいものだけが欲しいということです。ラムダ関数などを使用してそれを行うことができるかどうか疑問に思っていますか?私はすでにこれを試しました:

df.groupby('column').size() > X

そして、いくつかのTrue値とFalse値を出力します。

16
ahajib

グループ化された結果は通常のDataFrameなので、通常どおり結果をフィルターします。

 import pandas as pd

 df = pd.DataFrame({'a': ['a', 'b', 'a', 'a', 'b', 'c', 'd']})
 after = df.groupby('a').size()
 >> after
 a
 a    3
 b    2
 c    1
 d    1
 dtype: int64

 >> after[after > 2]
 a
 a    3
 dtype: int64
23
Ami Tavory

このコードを試してください:

df.groupby('column').filter(lambda group: group.size > X)
17
Jianxun Li