2016-11-18 71 views
1

在R中,我可以使用dplyr::arrange通過臨時變量對數據幀排序。通過臨時變量對Pandas數據幀中的值進行排序

library(nycflights13) 
arrange(flights, distance/air_time) 

是否有可能與大熊貓(實現這一點沒有明確地創建一個新的:例如,使用紐約市flights數據集在nycflights13包,我可以通過計算從distanceair_time列該值排序速度列,按該列排序,然後再次刪除此列)?

回答

1

我認爲這是可能通過reindex,首先可以使用Series.sort_values排序:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,4,3]}) 

print (df) 
    A B C D E F 
0 1 4 7 1 5 7 
1 2 5 8 3 3 4 
2 3 6 9 5 6 3 

print (df.A/df.D) 
0 1.000000 
1 0.666667 
2 0.600000 
dtype: float64 

print ((df.A/df.D).sort_values()) 
2 0.600000 
1 0.666667 
0 1.000000 
dtype: float64 

print (df.reindex((df.A/df.D).sort_values().index)) 
    A B C D E F 
2 3 6 9 5 6 3 
1 2 5 8 3 3 4 
0 1 4 7 1 5 7 
+0

尼斯,這個作品!以下是按速度對'航班'數據框進行排序的語法:'flights.reindex((flights.distance/flights.air_time).sort_values(ascending = False).index)' – cbrnr

+0

謝謝。我沒有你的示例數據(我不是'R'用戶,所以我創建了示例數據) – jezrael

+0

謝謝@jezrael - 我已經把數據放在GitHub上,以防你想運行這個特定的例子:https:// github。 COM/cbrnr/py4ds /斑點/主/ flights.csv – cbrnr

相關問題