python - 通过临时变量对 Pandas 数据框中的值进行排序

标签 python pandas

在 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/

相关文章:

python - django 模型表单自定义字段

python - 预分配一个无列表

python - 如何重现从 Hypertools.plot 识别的 Hypertools 集群

python - 如何计算 Pandas 数据框中到周末或休息日的天数

python - pandas.DataFrame.merge 中的错误?

python - top 报告的 Python 线程的 ID

python - 如何用掩码和索引替换双 for 循环?

python - np.where 多个返回值

python - 如何根据给定的标准将一个csv文件拆分为多个csv?

python - 如何在分组依据后检查列是否包含特定元素?