gpt4 book ai didi

python - 统计Python中每个值的范围

转载 作者:行者123 更新时间:2023-12-05 03:17:21 25 4
gpt4 key购买 nike

我有每个科目的学生分数数据集。

StuID  Subject Scores                1      Math    901      Geo     802      Math    702      Geo     603      Math    503      Geo     90

现在我想计算每个科目的分数范围,例如 0< x <=20 , 20< x <=30并获得这样的数据框:

Subject  0-20  20-40 40-60 60-80 80-100                 Math       0     0     1     1     1Geo        0     0     0     1     2    

给定的数据集只是我正在处理的数据的一个样本。我的数据集有 1000 多行。我该怎么做?谢谢!

最佳答案

假设 数据框df:

import pandas as pd

bins = list(range(0, 100+1, 20))
# [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
labels = [f'{a}-{b}' for a,b in zip(bins, bins[1:])]
# ['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70-80', '80-90', '90-100']

out = (pd.crosstab(df['Subject'], pd.cut(df['Scores'],
bins=bins, labels=labels,
ordered=True, right=False))
.reindex(labels, axis=1, fill_value=0)
# .reset_index().rename_axis(columns=None) # optional
)

输出:

Scores   0-20  20-40  40-60  60-80  80-100
Subject
Geo 0 0 0 1 2
Math 0 0 1 1 1

关于python - 统计Python中每个值的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74135208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com