gpt4 book ai didi

python - 如何使用 nlargest 为数据框中的前 N ​​个值分配/更改值?

转载 作者:行者123 更新时间:2023-12-02 01:40:32 24 4
gpt4 key购买 nike

因此,使用 .nlargest 我可以从数据框中获取前 N 个值。

现在如果我运行以下代码:

df.nlargest(25, 'Change')['TopN']='TOP 25'

我希望将 TopN 列中所有受影响的值更改为 TOP 25。但不知何故,这个分配不起作用,并且这些行不受影响。我做错了什么?

最佳答案

假设您确实想要 TOPN(仅限于 N 个值,如 nlargest 即可),请使用 df.nlargest(25, 'Change') 中的索引和loc :

df.loc[df.nlargest(25, 'Change').index, 'TopN'] = 'TOP 25'

注意与 the other approach 的区别这将为您提供所有匹配的值:

df.loc[df['Change'].isin(df['Change'].nlargest(25)), 'TopN'] = 'TOP 25'

突出差异:

df = pd.DataFrame({'Change': [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]})
df.loc[df.nlargest(4, 'Change').index, 'TOP4 (A)'] = 'X'
df.loc[df['Change'].isin(df['Change'].nlargest(4)), 'TOP4 (B)'] = 'X'

输出:

    Change TOP4 (A) TOP4 (B)
0 1 NaN NaN
1 2 NaN NaN
2 3 NaN NaN
3 4 X X
4 5 X X
5 1 NaN NaN
6 2 NaN NaN
7 3 NaN NaN
8 4 NaN X
9 5 X X
10 1 NaN NaN
11 2 NaN NaN
12 3 NaN NaN
13 4 NaN X
14 5 X X

关于python - 如何使用 nlargest 为数据框中的前 N ​​个值分配/更改值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71647708/

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