pandas 获取作为 groupby 列表的列的平均长度

pandas get the mean len of columns that is a list in groupby

我有一个数据框:

df = c    l 
     A  [1,2,3]
     A  [1,2,3,4]
     B  [1]

我想获得每组 cl 的平均长度(和标准差)。 所以这里的输出将是: 答:3.5 B : 1

最好的方法是什么?

使用 Series.str.len 和聚合 mean:

s = df['l'].str.len().groupby(df['c']).mean()
print (s)
c
A    3.5
B    1.0
Name: l, dtype: float64

或聚合多个函数:

df = df['l'].str.len().groupby(df['c']).agg(['mean','std'])
print (df)
   mean       std
c                
A   3.5  0.707107
B   1.0       NaN