pandas - 根据熊猫中最后一个单元格字符串对数据框列进行排序
问题描述
我的数据框如下:
Name time
a 10:30 A
a 01:30 P
a 11:30 A
a 01:10 P
我想像这样根据最后一个字符串(A,P)对时间列进行排序
Name time
a 10:30 A
a 11:30 A
a 01:10 P
a 01:30 P
解决方案
如果这些是字符串,请尝试:
>>> df = pd.DataFrame({"time": ["10:30 A", "01:30 P", "11:30 A", "01:10 P"]})
>>> df
time
0 10:30 A
1 01:30 P
2 11:30 A
3 01:10 P
>>> df.assign(tmp=df["time"].str.slice(-1)).sort_values("tmp").drop("tmp", 1)
time
0 10:30 A
2 11:30 A
1 01:30 P
3 01:10 P
如果它们是日期时间:
>>> df["time"] = pd.to_datetime(df["time"])
>>> df
time
0 2020-09-16 10:30:00
1 2020-09-16 13:30:00
2 2020-09-16 11:30:00
3 2020-09-16 13:10:00
>>> df.sort_values("time")
0 2020-09-16 10:30:00
2 2020-09-16 11:30:00
3 2020-09-16 13:10:00
1 2020-09-16 13:30:00
推荐阅读
- python - 如何在 Python 中使用 Twitter API 进行多次调用
- android - Android - 在构建项目时
- php - 将文件中的字符串(stdobject)解析为stdobject
- c# - 如何为ChoicePrompt Bot framework V4 c#添加10多个按钮
- android - 仅支持 armeabi 和 x86 的 android 库的问题
- java - 自定义对象作为 Map 键
- c# - 单击按钮时调用控制器方法时需要将文本框值作为参数传递
- java - 卡桑德拉没有开始
- google-sheets - 如何将输入添加到运行列表
- python - Django serializer.data 包含不存在的值