Python 将大于80%的值替换为中的80%
我有一个df,如下所示 df: 从上面我想用80%的值替换超过80%的值 预期产出:Python 将大于80%的值替换为中的80%,python,pandas,Python,Pandas,我有一个df,如下所示 df: 从上面我想用80%的值替换超过80%的值 预期产出: Id gender age salary 1 m 27 100 2 m 26 560 3 m 57 180 4 f 27 150 5 m 57 200 6 f
Id gender age salary
1 m 27 100
2 m 26 560
3 m 57 180
4 f 27 150
5 m 57 200
6 f 29 100
7 m 47 130
8 f 27 140
9 m 37 100
10 f 43 560
让我们试试:
quantiles = df.salary.quantile(0.8)
df.loc[df.salary > quantiles, 'salary'] = quantiles
输出(但不能将200
作为.8
百分位数):
如果您想填写性别:
quantiles = df.groupby('gender')['salary'].transform('quantile', q=0.8)
输出:
Id gender age salary
0 1 m 27 100
1 2 m 26 200
2 3 m 57 180
3 4 f 27 150
4 5 m 57 200
5 6 f 29 100
6 7 m 47 130
7 8 f 27 140
8 9 m 37 100
9 10 f 43 890
让我们试试:
quantiles = df.salary.quantile(0.8)
df.loc[df.salary > quantiles, 'salary'] = quantiles
输出(但不能将200
作为.8
百分位数):
如果您想填写性别:
quantiles = df.groupby('gender')['salary'].transform('quantile', q=0.8)
输出:
Id gender age salary
0 1 m 27 100
1 2 m 26 200
2 3 m 57 180
3 4 f 27 150
4 5 m 57 200
5 6 f 29 100
6 7 m 47 130
7 8 f 27 140
8 9 m 37 100
9 10 f 43 890
为什么0.8%是200?@YOBEN_的80%不是200?我不认为。8是200~为什么0.8%是200?@YOBEN_的80%不是200?我不认为。8是200~