cuốn sách gpt4 ai đã làm

python - 如何获得 groupby 大小的百分比

In lại Tác giả: Walker 123 更新时间:2023-11-28 20:00:45 hai mươi bốn 4
mua khóa gpt4 Nike

我正在寻找一种获取百分比的方法

df.groupby(['state', 'approved_or_not']).size()

Output:

school_state project_is_approved
AK 0 55
1 290
AL 0 256
1 1506
AR 0 177
1 872
AZ 0 347
1 1800

这很好,但我想要的是百分比而不是计数。

school_state project_is_approved
AK 0 0.16
1 0.84
AL 0 0.14
1 0.86

我试过了,想不出办法。感谢是否有人可以提供帮助?

câu trả lời hay nhất

sử dụngSeriesGroupBy.value_counts带参数 normalize=True:

df.groupby('state')['approved_or_not'].value_counts(normalize=True)

Ví dụ:

np.random.seed(2019)

L = list('ABC')
df = pd.DataFrame({'state':np.random.choice(L, size=10),
'approved_or_not':np.random.choice([0,1], size=10)})
print (df)
state approved_or_not
0 A 0
1 C 0
2 B 1
3 A 0
4 C 1
5 C 1
6 A 0
7 B 0
8 A 0
9 C 1

a = df.groupby(['state', 'approved_or_not']).size()
print (a)
A 0 4
B 0 1
1 1
C 0 1
1 3
dtype: int64

a = df.groupby('state')['approved_or_not'].value_counts(normalize=True)
print (a)
state approved_or_not
A 0 1.00
B 0 0.50
1 0.50
C 1 0.75
0 0.25
Name: approved_or_not, dtype: float64

编辑:您可以除以 Series.div每个第一级 tổng hợp state:

a = df.groupby(['state', 'approved_or_not']).size()

a = a.div(a.sum(level=0), level=0)
print (a)
state approved_or_not
A 0 1.00
B 0 0.50
1 0.50
C 0 0.25
1 0.75
dtype: float64

关于python - 如何获得 groupby 大小的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54786411/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress