私は自分の質問に対する答えを見つけようとしましたが、おそらく私の状況に正しく解決策を適用していないことがあります。これは私のデータシートのいくつかの行を所得グループにグループ化するために作成したものです。私は4つの新しいデータフレームを作成し、それぞれにインデックスを適用した後に連結しました。これは最適なのでしょうか、それとも良い方法がありますか?Python/Pandas - 条件別にグループ化する最も良い方法は?
私の目標は、これらの新しいグループとboxpot "by ="引数を使用してboxplotを作成することです。
df_nonull1 = df_nonull[(df_nonull['mn_earn_wne_p6'] < 20000)]
df_nonull2 = df_nonull[(df_nonull['mn_earn_wne_p6'] >= 20000) & (df_nonull['mn_earn_wne_p6'] < 30000)]
df_nonull3 = df_nonull[(df_nonull['mn_earn_wne_p6'] >= 30000) & (df_nonull['mn_earn_wne_p6'] < 40000)]
df_nonull4 = df_nonull[(df_nonull['mn_earn_wne_p6'] >= 40000)]
df_nonull1['inc_index'] = 1
df_nonull2['inc_index'] = 2
df_nonull3['inc_index'] = 3
df_nonull4['inc_index'] = 4
frames = [df_nonull1,df_nonull2,df_nonull3,df_nonull4]
results = pd.concat(frames)
うわー、これはまさに私が探していたものです。だから私は関数を定義することは本当に行く方法だと思います。私はラムダのインライン関数を見ていましたが、明らかにそれは複数の基準では機能しません。これは私にも非常に明確に適用されました。私が知っておくべきこのプロセスを行うための他の方法があれば、答えをマークする前にちょっと疑問に思っています。 – user3002486
@ user3002486必要に応じてラムダを使うことができます。私の編集を参照してください。 –
あなたはこのために 'pandas.cut'を使うべきです –