groupby(group_keys=True) ignored when apply returns unsliced data (original) (raw)
I ran into this unexplained behaviour with groupby when using group_keys=True (the default),
it's not clear why using x vs. x[:] causes the group_keys argument to be ignored.
In [86]: df = DataFrame({'key': [1, 1, 1, 2, 2, 2, 3, 3, 3], ...: 'value': range(9)}) ...: df Out[86]: key value 0 1 0 1 1 1 2 1 2 3 2 3 4 2 4 5 2 5 6 3 6 7 3 7 8 3 8
In [87]: df.groupby('key', group_keys=True).apply(lambda x: x[:].key)
Out[87]:
key
1 0 1
1 1
2 1
2 3 2
4 2
5 2
3 6 3
7 3
8 3
Name: key, dtype: int64
In [88]: df.groupby('key', group_keys=True).apply(lambda x: x.key) Out[88]: 0 1 1 1 2 1 3 2 4 2 5 2 6 3 7 3 8 3 Name: key, dtype: int64