【发布时间】:2021-12-27 05:55:57
【问题描述】:
我正在研究 Python 和 Pandas 库并尝试一些基础知识,但在文档中迷失了方向。
我有一个Pandas DataFrame
A B C D
1 2 3 4
3 4 1 7
6 9 0 1
... 其他 10k+ 行。
我现在想添加一个列“E”,如果“D”的值位于整个列的前 10%,则该列应为 True/False。
我尝试的一种方法是按“D”列降序排序,然后更新前 10% 的行,这样我可以排序但还没有弄清楚如何更新前 10% 的行
这种方式也会改变原来的顺序,这是不可取的。
df = df.sort_values('D',ascending=False)
df.iloc[:0, :(df.shape[0]-1)/10, 5] = value --- this doesn't work.
只是检查是否有办法在不排序的情况下实现这一点?如果没有,我如何更新前 10% 的行(如果它们已排序)?
谢谢
【问题讨论】:
标签: python python-3.x pandas dataframe aws-lambda