按出现次数对 python pandas 数据框中的项目进行分组
Group items in python pandas dataframe by number of occurences
我有以下数据集:
x | y
-------------
foo | 2
foo | 3
foo | 2
bar | 5
baz | 3
baz | 2
baz | 1
我想要一个摘要 table,它显示对于每个 x
值可以出现的每个次数,有多少 x
值出现该次数,以及平均 y
这些 x
项的值。像这样:
# | count | avg_y
-------------------
1 | 1 | 5
2 | 0 | nan
3 | 2 | 2.1667
我正在路上打电话:
df.x.value_counts().value_counts().sort_index()
但我不知道如何检索 avg_y
值。
a = df.groupby('x')['y'].agg(['size','mean']).groupby('size')['mean'].agg(['size','mean'])
#added missing rows
a = a.reindex(range(1, a.index.max() + 1))
a['size'] = a['size'].fillna(0).astype(int)
print (a)
size mean
size
1 1 5.000000
2 0 NaN
3 2 2.166667
详情:
print (df.groupby('x')['y'].agg(['size','mean']))
size mean
x
bar 1 5.000000
baz 3 2.000000
foo 3 2.333333
我有以下数据集:
x | y
-------------
foo | 2
foo | 3
foo | 2
bar | 5
baz | 3
baz | 2
baz | 1
我想要一个摘要 table,它显示对于每个 x
值可以出现的每个次数,有多少 x
值出现该次数,以及平均 y
这些 x
项的值。像这样:
# | count | avg_y
-------------------
1 | 1 | 5
2 | 0 | nan
3 | 2 | 2.1667
我正在路上打电话:
df.x.value_counts().value_counts().sort_index()
但我不知道如何检索 avg_y
值。
a = df.groupby('x')['y'].agg(['size','mean']).groupby('size')['mean'].agg(['size','mean'])
#added missing rows
a = a.reindex(range(1, a.index.max() + 1))
a['size'] = a['size'].fillna(0).astype(int)
print (a)
size mean
size
1 1 5.000000
2 0 NaN
3 2 2.166667
详情:
print (df.groupby('x')['y'].agg(['size','mean']))
size mean
x
bar 1 5.000000
baz 3 2.000000
foo 3 2.333333