我知道关于如何在panda中使用groupby的自定义函数有一些问题/答案,但我的情况略有不同。
我的数据是
group_col val_col
0 a [1, 2, 34]
1 a [2, 4]
2 b [2, 3, 4, 5]
data = {'group_col': {0: 'a', 1: 'a', 2: 'b'}, 'val_col': {0: [1, 2, 34], 1: [2, 4], 2: [2, 3, 4, 5]}}
df = pd.DataFrame(data)
我想做的是按group_col
进行分组,然后在val_col
中为每组汇总列表的长度。我的愿望输出是
a 5
b 4
我想知道我能在熊猫身上做到这一点吗?
您可以尝试
df['val_col'].str.len().groupby(df['group_col']).sum()
df.groupby('group_col')['val_col'].sum().str.len()
输出:
group_col
a 5
b 4
Name: val_col, dtype: int64