在 R 中,我可以使用 dplyr::arrange 按临时变量对数据帧进行排序。例如,使用 nycflights13
包中的 NYC flights
数据集,我可以通过根据 distance
和 计算该值来按速度排序air_time
列:
library(nycflights13)
arrange(flights, distance / air_time)
是否可以使用 Pandas 实现此目的(无需显式创建新列,按该列排序,然后再次删除该列)?
最佳答案
我认为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
关于python - 通过临时变量对 Pandas 数据框中的值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40676423/