私のためにここに最初の投稿をします(私は一日中グーグルをしていて何も見つかりませんでした)、優しくしてください。
そのため、複数の列、一部の浮動小数点数、一部のブール値を持つデータフレームを使用しています。
col_1 col_2 col_3 col_4 col_5 col_6
0 38.109375 37.515625 True False (64, 69) F
1 27.265625 28.484375 True False (74, 79) M
2 26.843750 27.015625 False True (64, 69) F
新しいdfを再注文/作成したいのですが:
これまでの私のアプローチ:
new_df = df.groupby(['col_6', 'col_5']).agg({'col_5' : ['count'], 'col_1' : ['mean'], 'col_2' : ['mean']})
しかし、col_5とcol_6にも関連する「真」をどのように数えることができるのか理解できませんでしたか?これが理にかなっていて、誰かが助けてくれることを願っています。
agg関数でラムダを使用してTrueアイテムをカウントできます
new_df = (
df
.assign(
col_3 = lambda x: x['col_3'].astype(int),
col_4 = lambda x: x['col_4'].astype(int)
)
.groupby(['col_6', 'col_5'])
.agg({'col_5' : ['count'],
'col_1' : ['mean'],
'col_2' : ['mean'],
'col_3' : lambda x: len([1 for item in x if item ==True]),
'col_4' : lambda x: len([1 for item in x if item ==True])}
)
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加