簡體   English   中英

Pandas:按功能分組和聚合

[英]Pandas: Group by and aggregation with function

假設我有一個具有以下值的數據框:

    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 ,然后獲得( end - start )值的平均值。

我可以使用meandf.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM