)私は、ユーザに関する情報を含むデータフレームdf
(450 000,15)を持っており、各ラインは13の特性(年齢、性別、郷土... )と1つのブール変数(ユーザーが車を所有しているか持っていないかにかかわらず)。最小グループサイズを持つパンダグループ(
私はユーザーを再編成して、どのグループが最も多くの車を持っているかを調べたいが、統計的に関連性を保つために少なくとも2500人のユーザーをグループに入れておく必要がある。
Gender Female 150000 Male 300000 dtype: int64
test= df.groupby(['Gender'])
test.size() # check the groups size
は、これまでのところは良い、私はグループによる方法より2500以上のユーザーを持っています。
test2= df.groupby(['Gender','Age'])
test2.size()
Gender Age Female <30 15022 30-90 134960 90+ 18 Male <20 5040 20-90 291930 90+ 3030 dtype: int64
私たちが期待することができますように、私は今、非常に少ないユーザーとグループを持っているが...
私はこのような何かを持っていると思います。だから私は、別のグループ化の基準を持っていました:
Gender Female 150 000 # Don't split here because groups will be too small # Here I can split, because group size > 2500 : Gender Age Male <20 5040 20-90 291930 90+ 3030 dtype: int64
サイズ基準に基づいてgroupbyデータフレームをグループ化する方法が見つかりませんでしたので、これを処理するにはどうしたらいいのでしょうか。
私はユーザーをグループ化する13の特徴を持っているため、グループ化の順序についても疑問に思っています。最初に性別でグループ化するか、年齢別にグループ化するのか、これは、停止条件付きで複数の変数を使用する場合に影響します。
私はパンダを使う必要はありませんが、それは適切だと思いました。出力は次のようになります。
name_of_group group_size
Female 150000
Male, <20 5040
Male, 20-90 291930
Male, 90+ 3030