简体   繁体   English

熊猫:计算按另一列分组的列的平均值

[英]Pandas: compute the mean of a column grouped by another column

Say I have a dataframe like this: 说我有一个像这样的数据框:

            gender     height      weight  C
2000-01-01    male  42.849980  157.500553  1
2000-01-02    male  49.607315  177.340407  1
2000-01-03    male  56.293531  171.524640  1
2000-01-04  female  48.421077  144.251986  2
2000-01-05    male  46.556882  152.526206  2
2000-01-06  female  68.448851  168.272968  1
2000-01-07    male  70.757698  136.431469  2
2000-01-08  female  58.909500  176.499753  3
2000-01-09  female  76.435631  174.094104  3
2000-01-10    male  45.306120  177.540920  2

How could I compute the mean of the height column, grouped by column C ? 如何计算按C列分组的height列的平均值? This would yield 3 different values: the mean of those heights with C=1 , that of those with C=2 , and so forth. 这将产生3个不同的值:与高度的平均C=1 ,即那些具有C=2 ,等等。

So far I tried this but to no avail: 到目前为止,我尝试了此操作,但无济于事:

df['height'].mean(groupby='C')

-> returns TypeError: mean() got an unexpected keyword argument 'groupby' ->返回TypeError: mean() got an unexpected keyword argument 'groupby'

Your syntax is incorrect, there is no groupby arg for mean , you want to groupby on the col of interest and then call mean on the column of interest: 您的语法不正确, mean没有groupby arg,您要对目标col进行groupby ,然后在目标列上调用mean

In [11]:
df.groupby('C')['height'].mean()

Out[11]:
C
1    54.299919
2    52.760444
3    67.672566
Name: height, dtype: float64

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM