Mic*_*ael 8 python dataframe pandas
这是我的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
Run Code Online (Sandbox Code Playgroud)
我想创建一个新的DataFrame
,包含最多三天的前3个水果.
apple
三天的总和- 151
,orange
- 133
,banana
- 219
,Pineapple
- 43
,grape
- 201
.
所以前三名成果是:1)banana
; 2)grape
; 3)apple
.
这是预期的输出:
day1 day2 day3
Banana 56 76 87
Grape 89 45 67
Apple 40 13 98
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做pandas.DataFrame
?
谢谢!
Zel*_*ny7 15
以下是通过总和获得前3天的指数的方法:
In [1]: df.sum(axis=1).order(ascending=False).head(3)
Out[1]:
Banana 219
Grape 201
Apple 151
Run Code Online (Sandbox Code Playgroud)
您可以使用该索引来引用原始数据集:
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
Run Code Online (Sandbox Code Playgroud)
[编辑]
order()
现已弃用.sort_values()
可以在这里使用.
df.sum(axis=1).sort_values(ascending=False).head(3)
Run Code Online (Sandbox Code Playgroud)