gpt4 book ai didi

python - Pandas - 用低于/更少的观察值百分比替换值

转载 作者:行者123 更新时间:2023-12-03 22:56:38 25 4
gpt4 key购买 nike

我有一个这样的 df:

>>> a = [1, 2, 3, 4, 5, 6, 7, 8]
>>> df = pd.DataFrame({'a': a})
>>> df
a
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
我想用显示有多少观察值小于值(以百分比为单位)的值替换这些值。像这样:
>>> df
a how_many_percent_of_observations_are_less_than_value_from_a
0 1 0 (no observations that are lower, 0/8)
1 2 .125 (one observation is lower, 1/8)
2 3 .25 (two observations are lower, 2/8)
3 4
4 5
5 6
6 7
7 8 .875 (7 observations are lower, 7/8)

最佳答案

如果 a,您可以使用 numpy 广播进行测试值不太像相同的值,然后计算 True 的数量s 每 'columns'并除以数组的长度:

a = df.a.to_numpy()

print (a[:, None] < a)
[[False True True True True True True True]
[False False True True True True True True]
[False False False True True True True True]
[False False False False True True True True]
[False False False False False True True True]
[False False False False False False True True]
[False False False False False False False True]
[False False False False False False False False]]


df['new'] = (a[:, None] < a).sum(axis=0) / len(a)
print (df)
a new
0 1 0.000
1 2 0.125
2 3 0.250
3 4 0.375
4 5 0.500
5 6 0.625
6 7 0.750
7 8 0.875

关于python - Pandas - 用低于/更少的观察值百分比替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66385989/

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