如何求范畴列的平均值

2024-06-25 23:52:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是pandas cut作为binning连续值。我想知道如何得到每个箱子的平均值

兆瓦

import numpy as np
import pandas as pd

np.random.seed(100)
df = pd.DataFrame({'a': np.random.randint(1,10,10)})
df['bins_a'] = pd.cut(df['a'],4)

print(df)
   a        bins_a
0  9    (7.0, 9.0]
1  9    (7.0, 9.0]
2  4    (3.0, 5.0]
3  8    (7.0, 9.0]
4  8    (7.0, 9.0]
5  1  (0.992, 3.0]
6  5    (3.0, 5.0]
7  3  (0.992, 3.0]
8  6    (5.0, 7.0]
9  3  (0.992, 3.0]

我试过:

df['bins_a_mean'] = df['bins_a'].mean()

But this fails.

如何获得每个间隔的平均值


Tags: importnumpypandasdfasnprandommean
1条回答
网友
1楼 · 发布于 2024-06-25 23:52:22

试试这个:

df['bins_a_mean'] = df.groupby('bins_a')['a'].transform('mean')

print(df)
   a        bins_a  bins_a_mean
0  9    (7.0, 9.0]     8.500000
1  9    (7.0, 9.0]     8.500000
2  4    (3.0, 5.0]     4.500000
3  8    (7.0, 9.0]     8.500000
4  8    (7.0, 9.0]     8.500000
5  1  (0.992, 3.0]     2.333333
6  5    (3.0, 5.0]     4.500000
7  3  (0.992, 3.0]     2.333333
8  6    (5.0, 7.0]     6.000000
9  3  (0.992, 3.0]     2.333333

相关问题 更多 >