Python 正在获取“pandas.DataFrame”中列总数最大的前3行?

Python 正在获取“pandas.DataFrame”中列总数最大的前3行?,python,pandas,dataframe,Python,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,它将包含三天内最多的前三个水果 苹果三天之和--151,橘子--133,香蕉--219,菠萝--43,葡萄--20

这是我的熊猫。数据框:

        day1   day2   day3
Apple     40     13     98
Orange    32     45     56
Banana    56     76     87
Pineapple 12     19     12
Grape     89     45     67
我想创建一个新的
DataFrame
,它将包含三天内最多的前三个水果

苹果三天之和--
151
橘子
--
133
香蕉
--
219
菠萝
--
43
葡萄
--
201

所以排名前三的水果是:1)香蕉;2) 葡萄;3)
apple

以下是预期的输出:

        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()
现在已不推荐使用<代码>排序值()可在此处使用

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

注意:这不会处理索引中的重复标签,但在我看来,这样做不太优雅。注意0.14中的NLAGEST存在一个问题。order()现在已不推荐使用,因此pandas将打印警告。另一种方法是使用sort_值,该值可以安全地在该用例中替换。