gpt4 book ai didi

python - 获取 `pandas.DataFrame` 中列数总和最大的前 3 行?

转载 作者:太空狗 更新时间:2023-10-29 20:43:53 27 4
gpt4 key购买 nike

这是我的pandas.DataFrame:

        day1   day2   day3
Apple 40 13 98
Orange 32 45 56
Banana 56 76 87
Pineapple 12 19 12
Grape 89 45 67

我想创建一个新的 DataFrame,它将包含三天总和最大的前 3 个水果。

apple 三天的总和 -- 151, orange -- 133, banana -- 219, 菠萝 -- 43, 葡萄 -- 201.
所以排名前三的水果是:1)banana; 2)葡萄; 3)苹果

这是预期的输出:

        day1   day2   day3
Banana 56 76 87
Grape 89 45 67
Apple 40 13 98

我如何使用 pandas.DataFrame 做到这一点?

谢谢!

最佳答案

以下是按总和计算前 3 天的指数的方法:

In [1]: df.sum(axis=1).order(ascending=False).head(3)
Out[1]:
Banana 219
Grape 201
Apple 151

并且您可以使用该索引来引用您的原始数据集:

In [2]: idx = df.sum(axis=1).order(ascending=False).head(3).index

In [3]: df.ix[idx]
Out[3]:
day1 day2 day3
Banana 56 76 87
Grape 89 45 67
Apple 40 13 98

[编辑]

order() 现已弃用。 sort_values() 可以在这里使用。

df.sum(axis=1).sort_values(ascending=False).head(3)

关于python - 获取 `pandas.DataFrame` 中列数总和最大的前 3 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20480238/

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