如何解决Pandas DataFrame按datetime排序时同小时内时间顺序错误问题
问题原因
同一小时内时间排序错误的核心原因大概率是DateTime列当前为字符串格式而非Pandas原生的时间格式,字符串的排序规则是逐字符对比,和时间的先后规则不匹配。
修复步骤
- 先将
DateTime列转换为时间格式:
import pandas as pd # 无特殊格式直接转换 airings_df['DateTime'] = pd.to_datetime(airings_df['DateTime']) # 如果时间格式固定,可传入format参数提升转换效率、避免识别错误,根据实际时间格式调整即可,示例如下: # airings_df['DateTime'] = pd.to_datetime(airings_df['DateTime'], format='%Y-%m-%d %H:%M:%S')
- 格式转换完成后再执行原有排序操作即可:
airings_df = airings_df.sort_values(by=['Station', 'DateTime'])
验证方式
排序完成后可通过以下代码确认排序效果符合预期:
print(airings_df[['Station', 'DateTime']].head(20))
内容的提问来源于stack exchange,提问作者Arfan Kabir
相关产品推荐
相关产品推荐

