如何使用Python Pandas按日期从最旧到最新排序CSV文件数据行
用Pandas对CSV数据按日期从旧到新排序的解决方案
嘿,我来帮你搞定这个排序问题!你有个日期乱序的data.csv,想要用Pandas把数据按日期从最旧到最新排好,对吧?结合你给的初始代码和数据,我给你两种实用的实现方式:
方法一:读取时直接解析日期(更高效)
这种方式在读取CSV的时候就把Date列转换成datetime类型,一步到位:
import pandas as pd # 读取CSV并自动解析Date列为日期格式 data = pd.read_csv('data.csv', parse_dates=['Date']) # 按Date列升序排序(最旧→最新),inplace=True直接修改原DataFrame data.sort_values(by='Date', ascending=True, inplace=True) # 重置索引,避免排序后索引混乱 data.reset_index(drop=True, inplace=True) # 查看结果或者保存到新文件 print(data) # data.to_csv('sorted_data.csv', index=False) # 若需要保存排序后的文件
方法二:基于你提供的初始代码修改
如果你更倾向于先读取再转换日期,可以这样调整:
import pandas as pd data = pd.read_csv('data.csv') # 将Date列转为datetime类型,替换原列 data['Date'] = pd.to_datetime(data['Date']) # 按Date升序排序,得到新的DataFrame data_sorted = data.sort_values(by='Date', ascending=True) # 重置索引 data_sorted.reset_index(drop=True, inplace=True) # 输出结果 print(data_sorted)
关键参数说明
ascending=True:这是实现从最旧到最新排序的核心,如果你想要反过来(最新→最旧),把它改成False就行。reset_index(drop=True):排序后原索引会混乱,这行代码可以重置索引,让行号从0开始连续排列。
对了,看你给出的预期输出是按最新到最旧排列的(13:17 → 13:16 → 13:15),如果这才是你实际想要的,只需要把ascending=True改成ascending=False就可以得到对应的结果啦!
内容的提问来源于stack exchange,提问作者georgehere
相关产品推荐
相关产品推荐

