我有两列,像这样。
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()函数?
答案 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