问题描述
我是 Python 和 Pandas 的新手,我正在努力从我的 df 中创建频率分布表。
我的数据框是这样的:
余额 | 重量 |
---|---|
10 | 7 |
11 | 15 |
12 | 30 |
13 | 20 |
10 | 15 |
13 | 20 |
编辑:余额编号是其各自的 ID
我需要使用的每个天平的频率(在本例中,天平 10 将是 2,依此类推)测量结果的最小值、最大值和平均值。
我要使用 df.groupby(['balances']) 但是我如何使用结果表单使用 df.groupby 创建一个新表?是这样吗?
解决方法
您不需要使用groupby
,而是使用Series.value_counts
:
In [1619]: df.Balances.value_counts()
Out[1619]:
10 2
13 2
11 1
12 1
Name: Balances,dtype: int64
要创建另一个 df
,请执行以下操作:
In [1628]: df1 = df.Balances.value_counts().reset_index(name='Frequency').rename(columns={'index':'Balances'})
In [1629]: df1
Out[1629]:
Balances Frequency
0 10 2
1 13 2
2 11 1
3 12 1
,
df.groupby(['balances']).count()
应该可以解决您的问题