使用python对csv文件按照时间列排序

554 阅读1分钟

假设有如下格式的一个csv文件,需要按照date列排序,并将csv表头列重写为:主题、日期、文档列表

image.png

可以通过如下示例python脚本实现


import pandas as pd
import time
import os
import sys

dpath="\home\xxx"

rfname=os.path.join(dpath,"records.csv")
tfname=os.path.join(dpath,"sorted.csv")



if not os.path.exists(rfname):
    sys.exit(0)


with open(rfname,"r") as rec_file:
#读取csv到DataFrame
    df=pd.read_csv(rec_file,encoding="gbk",header=0)


#提取title,date,documents 列
    title=df.values[:,0]
    date=df.values[:,1]
    docs=df.values[:,2]

#按row组合成tuple列表
    tmp=list(zip(title,date,docs))
    
#对列表按照时间列倒排序    
    st=sorted(tmp,reverse=True,key=lambda x:time.strptime(x[1],"%Y/%m/%d"))   

#生成目标DataFrame,并输出到文件
    dst=pd.DataFrame(data=st)    
    dst.to_csv(path_or_buf=tfname,index=False,encoding="gbk",header=["主题","日期","文档列表"])