Pandas 根据数据框中最后一个单元格字符串对数据框列进行排序
我的数据框如下所示:Pandas 根据数据框中最后一个单元格字符串对数据框列进行排序,pandas,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
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
你能提供一些到目前为止你已经尝试过的信息吗?时间列的格式也是什么。如果你没有做过像df['time']=pd这样的事情,它可能是一个字符串而不是时间。to_datetimedf['time']欢迎使用SO!请看。