gpt4 book ai didi

python - 对于特定类别,计算每行高于或低于平均值的百分比

转载 作者:行者123 更新时间:2023-12-04 14:50:29 25 4
gpt4 key购买 nike

我想知道如何通过 Python 计算每个类别的每一行是高于还是低于平均水平?我有一个名为 test.csv 的 csv 文件。比如类别2,我有两个值。首先,我需要计算该类别的平均值,然后计算每个值是高于还是低于平均百分比。我不知道如何做后者。

import pandas as pd
import numpy as np

#loading the data into data frame
X = pd.read_csv('test.csv')

感兴趣的两列是 CategoryTotals 列:

Category Totals estimates
2 2777 043
4 1003 06
4 3473 065
4 2638 017
1 2855 04
0 2196 03
0 2630 91
2 2714 39
3 2472 0.51
0 1090 0.12

最佳答案

使用groupby.transform计算分组均值:

means = df.groupby('Category')['Totals'].transform('mean')

然后使用np.select检查它们是否高于/低于/等于分组均值:

conditions = {
'above': df['Totals'] > means,
'below': df['Totals'] < means,
}

df['vs_mean'] = np.select(conditions.values(), conditions.keys(), default='equal')

# Category Totals estimates vs_mean
# 0 2 2777 43.00 above
# 1 4 1003 6.00 below
# 2 4 3473 65.00 above
# 3 4 2638 17.00 above
# 4 1 2855 4.00 equal
# 5 0 2196 3.00 above
# 6 0 2630 91.00 above
# 7 2 2714 39.00 below
# 8 3 2472 0.51 equal
# 9 0 1090 0.12 below

关于python - 对于特定类别,计算每行高于或低于平均值的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69147780/

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