python - 如何对 Pandas 中的两个字段进行排序?

标签 python sorting pandas

我有以下数据类型:

id=["SA3342","ASD345","SFZX34","ASDFS5","SDFDS4","SFDDSF1"]
arrival_time = ["0"," 2016-05-19 13:50:00","2016-05-19 21:25:00","0","2016-05-24 18:30:00","2016-05-26 12:15:00"]
departure_time = ["2016-05-19 08:25:00","2016-05-19 16:00:00","2016-05-20 07:45:00","2016-05-24 12:50:00","2016-05-25 23:00:00","2016-05-26 19:45:00"]

获取以下数据:

id              arrival_time                departure_time
SA3342                 0                  2016-05-19 08:25:00
ASD345          2016-05-19 13:50:00       2016-05-19 16:00:00
SFZX34          2016-05-19 21:25:00       2016-05-20 07:45:00
ASDFS5                    0               2016-05-24 12:50:00
SDFDS4          2016-05-24 18:30:00       2016-05-25 23:00:00
SFDDSF1          2016-05-26 12:15:00       2016-05-26 19:45:00

如何根据“id”和出发时间对数据类型进行排序?

我尝试了以下代码,但没有成功:

df = df.sort_values(['id', 'departure_time'], inplace=True, by='date')    

我收到以下错误:

TypeError: sort_values() got multiple values for keyword argument 'by'

最佳答案

看来您需要删除 assign if parameter inplace=True 并删除 sort_values 中的第二个 by :

df.sort_values(by=['id', 'departure_time'], inplace=True)    
print (df)
        id          arrival_time       departure_time
1   ASD345   2016-05-19 13:50:00  2016-05-19 16:00:00
3   ASDFS5                     0  2016-05-24 12:50:00
0   SA3342                     0  2016-05-19 08:25:00
4   SDFDS4   2016-05-24 18:30:00  2016-05-25 23:00:00
5  SFDDSF1   2016-05-26 12:15:00  2016-05-26 19:45:00
2   SFZX34   2016-05-19 21:25:00  2016-05-20 07:45:00

或者删除 inplace=True 和第二个 by:

df = df.sort_values(by=['id', 'departure_time'])    
print (df)
        id          arrival_time       departure_time
1   ASD345   2016-05-19 13:50:00  2016-05-19 16:00:00
3   ASDFS5                     0  2016-05-24 12:50:00
0   SA3342                     0  2016-05-19 08:25:00
4   SDFDS4   2016-05-24 18:30:00  2016-05-25 23:00:00
5  SFDDSF1   2016-05-26 12:15:00  2016-05-26 19:45:00
2   SFZX34   2016-05-19 21:25:00  2016-05-20 07:45:00

关于python - 如何对 Pandas 中的两个字段进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43886010/

相关文章:

python - django select_for_update 和 select_related 在同一个查询上?

javascript - 如何在 Javascript 中从数组中查找上一个或下一个元素?

python - uniq、groupby 的用例,无需排序

java - 按姓氏排序

python - 使用多个数据框创建 pandas 数据框

python - 在机器学习和深度学习项目中进行分析之前,我是否应该重新组合训练集和测试集?

python - 池多处理失败

python - Keras.backend.reshape : TypeError: Failed to convert object of type <class 'list' > to Tensor. 考虑将元素转换为支持的类型

python - scipy 稀疏矩阵,复制参数

python - 如何将 datetime.time() 对象转换为 datetime.datetime 对象 pandas