gpt4 book ai didi

python - 计算 Pandas 数据框中每一行的百分比

转载 作者:行者123 更新时间:2023-11-28 19:34:01 25 4
gpt4 key购买 nike

                  country_name  country_code  val_code  \
United States of America 231 1
United States of America 231 2
United States of America 231 3
United States of America 231 4
United States of America 231 5

y191 y192 y193 y194 y195 \
47052179 43361966 42736682 43196916 41751928
1187385 1201557 1172941 1176366 1192173
28211467 27668273 29742374 27543836 28104317
179000 193000 233338 276639 249688
12613922 12864425 13240395 14106139 15642337

在上面的数据框中,我想为每一行计算该 val_code 占用的总数的百分比,从而导致 foll。数据框。

即总结每一行并除以所有行的总数

                  country_name  country_code  val_code  \
United States of America 231 1
United States of America 231 2
United States of America 231 3
United States of America 231 4
United States of America 231 5

perc
50.14947129
1.363631254
32.48344744
0.260213146
15.74323688

现在,我正在这样做,但它不起作用

grp_df = df.groupby(['country_name', 'val_code']).agg()

pct_df = grp_df.groupby(level=0).apply(lambda x: 100*x/float(x.sum()))

最佳答案

您可以使用 lambda 函数获取每列的百分比,如下所示:

>>> df.iloc[:, 3:].apply(lambda x: x / x.sum())
y191 y192 y193 y194 y195
0 0.527231 0.508411 0.490517 0.500544 0.480236
1 0.013305 0.014088 0.013463 0.013631 0.013713
2 0.316116 0.324405 0.341373 0.319164 0.323259
3 0.002006 0.002263 0.002678 0.003206 0.002872
4 0.141342 0.150833 0.151969 0.163455 0.179920

您的示例没有任何 val_code 的重复值,因此我不确定您希望数据如何显示(即显示列中的总计百分比与每个 v 的总计百分比) val_code 组。)

关于python - 计算 Pandas 数据框中每一行的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31481803/

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