根据另一列的名称计算熊猫的平均值

时间:2019-12-16 22:06:33

标签: python python-3.x pandas

我有两列,像这样。

   name     length
0   Pk      78
2   Pk      59
4   Pk      283
6   Ser     100
7   Ig_2    79
8   Ig_2    77
9   Ser     369

我想计算每个名字的平均值。     例如

Pk - 140
ser -234.5
Ig_2 -78

如何使用python熊猫做到这一点。

我正在尝试这个。

df.groupby(level=0).mean()

但是没有用。 无论如何要为此使用rolling()函数?

1 个答案:

答案 0 :(得分:1)

In [1]: import pandas as pd
In [2]: df = pd.DataFrame([['pk', 78], ['pk', 59], ['Ig', 79], ['Ig', 77]], colu
   ...: mns=['name', 'length'])

In [3]: df
Out[3]:
  name  length
0   pk      78
1   pk      59
2   Ig      79
3   Ig      77

In [4]: df.groupby('name').mean()
Out[4]:
      length
name
Ig      78.0
pk      68.5

要按升序对值进行排序:

In [11]: df.groupby('name').mean().sort_values(by='length', 
ascending=True)
Out[11]:
      length
name
pk      68.5
Ig      78.0