无法按行索引排序和`sort_index()`无法正常工作

时间:2017-08-12 21:03:48

标签: python pandas sorting

我正在尝试将下面的行索引从最大到最小排序:

enter image description here

我的第一次尝试是:

plot_df_dropoff.sort_index(by=["dropoff_latitude"], ascending=False)

但我得到了Key Value Error

基于this link的第二个想法也不起作用。它返回了None

这看起来很简单,但我无法弄清楚。任何帮助将非常感激。

id
pickup_longitude    (-74.03, -74.025]   (-74.025, -74.02]   (-74.02, -74.015]   (-74.015, -74.01]   (-74.01, -74.005]   (-74.005, -74]  (-74, -73.995]  (-73.995, -73.99]   (-73.99, -73.985]   (-73.985, -73.98]   ... (-73.82, -73.815]   (-73.815, -73.81]   (-73.81, -73.805]   (-73.805, -73.8]    (-73.8, -73.795]    (-73.795, -73.79]   (-73.79, -73.785]   (-73.785, -73.78]   (-73.78, -73.775]   (-73.775, -73.77]
pickup_latitude                                                                                 
(40.63, 40.64]  5.0 10.0    8.0 2.0 3.0 1.0 NaN 2.0 1.0 1.0 ... NaN NaN NaN NaN 1.0 NaN 7.0 1.0 NaN NaN
(40.64, 40.65]  2.0 2.0 14.0    16.0    2.0 4.0 6.0 3.0 5.0 11.0    ... NaN NaN NaN 149.0   164.0   3580.0  7532.0  11381.0 5596.0  NaN
(40.65, 40.66]  NaN NaN NaN 2.0 22.0    41.0    11.0    2.0 4.0 13.0    ... NaN 1.0 146.0   7.0 3.0 201.0   81.0    2.0 1.0 2.0
(40.66, 40.67]  NaN NaN NaN NaN NaN 2.0 60.0    143.0   180.0   122.0   ... NaN 4.0 24.0    126.0   15.0    47.0    32.0    4.0 3.0 3.0
(40.67, 40.68]  NaN NaN 7.0 44.0    18.0    200.0   328.0   65.0    293.0   590.0   ... 3.0 3.0 1.0 131.0   1.0 1.0 2.0 1.0 1.0 2.0

这是一个可能更容易使用的小部分:

                                id                                      \
pickup_longitude (-74.03, -74.025] (-74.025, -74.02] (-74.02, -74.015]   
pickup_latitude                                                          
(40.63, 40.64]                 5.0              10.0               8.0   
(40.64, 40.65]                 2.0               2.0              14.0   
(40.65, 40.66]                 NaN               NaN               NaN   
(40.66, 40.67]                 NaN               NaN               NaN   
(40.67, 40.68]                 NaN               NaN               7.0   
(40.68, 40.69]                 NaN               NaN               NaN   
(40.69, 40.7]                  NaN               1.0               1.0   
(40.7, 40.71]                  1.0               1.0            3841.0   
(40.71, 40.72]                 NaN               2.0            6537.0   
(40.72, 40.73]                 NaN               NaN               NaN   
(40.73, 40.74]                 9.0               2.0               NaN  

1 个答案:

答案 0 :(得分:1)

您可以reset indexsort by values

尝试:

>>>plot_df_dropoff.reset_index().sort_values(by=["dropoff_latitude"], ascending=False)

正如@JohnE所提到的,你也可以使用sort_index():

>>>plot_df_dropoff.sort_index(ascending=False)