1
私はデータフレームmy_df
を持っています、そして、私は新しいデータフレームnew_df
を作成したいと思います。各new_df
列はgroupby
my_id
によって作成され、次にの列のmax
を取ります。パンダ:多くの列を持つデータフレームに対してgroupby + aggregationを達成するためのエレガントなアプローチ?
以下は私のコードです。正常に動作します。しかし、もっと良いアプローチがあるのだろうか?特に将来は6列だけではなく、何百もの列を扱うことになるでしょうか?どうもありがとう!
tmp_df1 = my_df.groupby(['my_id'], as_index=False).col_A.agg({"max_A": "max"})
tmp_df2 = my_df.groupby(['my_id'], as_index=False).col_B.agg({"max_B": "max"})
tmp_df3 = my_df.groupby(['my_id'], as_index=False).col_C.agg({"max_C": "max"})
tmp_df4 = my_df.groupby(['my_id'], as_index=False).col_D.agg({"max_D": "max"})
tmp_df5 = my_df.groupby(['my_id'], as_index=False).col_E.agg({"max_E": "max"})
tmp_df6 = my_df.groupby(['my_id'], as_index=False).col_F.agg({"max_F": "max"})
combine_df1 = pd.merge(tmp_df1,tmp_df2,how="inner",on=['my_id'])
combine_df2 = pd.merge(combine_df1,tmp_df3,how="inner",on=['my_id'])
combine_df3 = pd.merge(combine_df2,tmp_df4,how="inner",on=['my_id'])
combine_df4 = pd.merge(combine_df3,tmp_df5,how="inner",on=['my_id'])
new_df = pd.merge(combine_df4,tmp_df6,how="inner",on=['my_id'])
処理中にこれらのnew_df列に新しい名前を付けることはできますか?すなわち、col_Aの代わりにA_max、col_B ...の代わりにB_maxなど?後で各列の名前を手動で変更しようとしています...ありがとう! – Edamame
@Edamame私の投稿を更新しました。 – piRSquared