【发布时间】:2018-04-21 14:12:19
【问题描述】:
我已经对一个数据框进行了分组,并且我希望按组替换某些列中的值(如果它们或小于某个百分位数)。
因此,组内大于 0.95 个百分位的所有值都应替换为 0.95 个百分位,所有小于 0.05 个百分位的值应替换为 0.05 个百分位。
数据框可能如下所示(示例取自 another question):
两组:“一”和“二”
A B C
0 0.719391 0.091693 one
1 0.951499 0.83716 one
2 0.975212 0.224855 one
3 0.80762 0.031284 one
4 0.63319 0.342889 one
5 0.075102 0.899291 one
6 0.502843 0.773424 one
7 0.032285 0.242476 one
8 0.794938 0.607745 one
9 0.620387 0.574222 one
10 0.446639 0.549749 two
11 0.664324 0.134041 two
12 0.622217 0.505057 two
13 0.670338 0.99087 two
14 0.281431 0.016245 two
15 0.675756 0.185967 two
16 0.145147 0.045686 two
17 0.404413 0.191482 two
18 0.94913 0.943509 two
19 0.164642 0.157013 two
这个数据框的结果应该是:
A B C
0 0.719391 0.091693 one
1 0.951499 0.83716 one
2 0.96454115 0.224855 one
3 0.80762 0.05846805 one
4 0.63319 0.342889 one
5 0.075102 0.87133205 one
6 0.502843 0.773424 one
7 0.05155265 0.242476 one
8 0.794938 0.607745 one
9 0.620387 0.574222 one
10 0.446639 0.549749 two
11 0.664324 0.134041 two
12 0.622217 0.505057 two
13 0.670338 0.96955755 two
14 0.281431 0.02949345 two
15 0.675756 0.185967 two
16 0.15391975 0.045686 two
17 0.404413 0.191482 two
18 0.8261117 0.943509 two
19 0.164642 0.157013 two
请注意,对于 A 列,第 2、7、16 和 18 行已被替换;并且对于 B 列,第 3、5、13 和 14 行已被替换。
有谁知道如何以有效的方式为大型数据框执行此操作?
谢谢
【问题讨论】:
标签: python pandas grouping percentile