前提・実現したいこと
pythonで複数列でgroupbyしたものを扱いたい。
"col1, col2で同じ値をもつサンプルのtargetの平均値"というcolumnを作りたい
発生している問題・エラーメッセージ
TypeError: ("'DataFrame' object is not callable", 'occurred at index date')
該当のソースコード
例えばデータが
df(dataframe) で
ix col1 col2 target
0 0 0 0
1 0 1 1
2 0 2 0
3 1 0 1
4 2 1 1
5 2 2 0
という物があり、
"col1で同じ値をもつサンプルのtargetの平均値"というcolumnを新たに作ろうとしたら
a = df.groupby('col1')['target'].mean()
df['new_col'] = df['col1'].map(a)
とすると出来ますが、
"col1, col2で同じ値をもつサンプルのtargetの平均値"というcolumnを新たに作ろうとして
a = df.groupby(['col1', 'col2'])['target'].mean()
df['new_col'] = df[['col1', 'col2']].map(a)
とすると行きません。
python
1a = df.groupby(['col1', 'col2'])['target'].mean() 2df['new_col'] = df[['col1', 'col2']].map(a)
よろしくおねがいします。
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー