これは、計算された列を既存のデータフレームにアタッチするのと似ていますが、pandas v0.14で複数の列でグループ化する場合、このソリューションは機能しません。
例えば:
$ df = pd.DataFrame([
[1, 1, 1],
[1, 2, 1],
[1, 2, 2],
[1, 3, 1],
[2, 1, 1]],
columns=['id', 'country', 'source'])
次の計算が機能します。
$ df.groupby(['id','country'])['source'].apply(lambda x: x.unique().tolist())
0 [1]
1 [1, 2]
2 [1, 2]
3 [1]
4 [1]
Name: source, dtype: object
ただし、出力を新しい列に割り当てると、エラーが発生します。
df['source_list'] = df.groupby(['id','country'])['source'].apply(
lambda x: x.unique().tolist())
TypeError: 挿入された列のインデックスがフレーム インデックスと互換性がありません