2

我是 Python 和 Pandas 的新手,我正在努力从我的 df 创建一个频率分布表。

我的数据框是这样的:

天平 重量
10 7
11 15
12 30
13 20
10 15
13 20

编辑:余额编号是其各自的 ID

我需要使用的每个天平的频率(在本例中,天平 10 将是 2,依此类推)测量结果的最小值、最大值和平均值。

我打算使用 df.groupby(['balances']) 但我如何使用 df.groupby 的结果表单来创建一个新表?是这样吗?

4

2 回答 2

2

您不需要使用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
于 2021-04-07T15:20:24.637 回答
1

df.groupby(['balances']).count()应该解决你正在寻找的东西

于 2021-04-07T15:16:31.940 回答