2016-11-18 30 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

相关问题