Python 熊猫:按功能分组和聚合
假设我有一个具有以下值的数据帧:Python 熊猫:按功能分组和聚合,python,pandas,Python,Pandas,假设我有一个具有以下值的数据帧: name start end description 0 ag 20 30 None 1 bgb 21 111 'a' 2 cdd 31 101 None 3 bgb 17 19 'Bla' 4 ag 20 22 None 我想通过g
name start end description
0 ag 20 30 None
1 bgb 21 111 'a'
2 cdd 31 101 None
3 bgb 17 19 'Bla'
4 ag 20 22 None
我想通过groupby
name,然后获得(end
-start
)值的平均值
我可以使用mean
(df.groupby(['name'],as_index=False)。mean()
)
但是我怎样才能给平均值函数两列的减法(最后一列)?你可以减去列,然后按列分组
df['name']
:
df1 = df['end'].sub(df['start']).groupby(df['name']).mean().reset_index(name='diff')
print (df1)
name diff
0 ag 6
1 bgb 46
2 cdd 70
新专栏diff
的另一个想法:
df1 = (df.assign(diff = df['end'].sub(df['start']))
.groupby('name', as_index=False)['diff']
.mean())
print (df1)
name diff
0 ag 6
1 bgb 46
2 cdd 70