我正在制作一个可以占用任何csv文件的通用工具。我有一个看起来像这样的csv文件。第一行是列名,第二行是变量类型。
Time,M1,M2,M3,CityName
temp,num,num,num,city
20-May-15,19,20,0,aligarh
03-Sep-14,25,42,7,agra
20-Jan-13,23,35,4,aligarh
20-Feb-15,21,32,3,allahabad
12-May-16,17,27,1,aligarh
25-May-16,16,40,5,aligarh
我想在Python中根据日期(最旧到最新)对整个文件进行排序,但是找不到出路。
答案 0 :(得分:3)
我认为pandas
应该有所帮助 - 首先将MultiIndex
的第一个和第二个csv标头转换为header=[0,1]
,并将第一列解析为日期时间,最后sort_values
:
df = pd.read_csv(file, header=[0,1], parse_dates=[0])
df = df.sort_values(('Time','temp'))
#sort by first column
#df = df.sort_values(df.columns[0])
print (df)
Time M1 M2 M3 CityName
temp num num num city
2 2013-01-20 23 35 4 aligarh
1 2014-09-03 25 42 7 agra
3 2015-02-20 21 32 3 allahabad
0 2015-05-20 19 20 0 aligarh
4 2016-05-12 17 27 1 aligarh
5 2016-05-25 16 40 5 aligarh
答案 1 :(得分:1)
>>> df = pd.read_csv('t.csv',skiprows=[1])
>>> df.Time = pd.to_datetime((df.Time))
>>> df.sort_values(by='Time')
Time M1 M2 M3 CityName
2 2013-01-20 23 35 4 aligarh
1 2014-09-03 25 42 7 agra
3 2015-02-20 21 32 3 allahabad
0 2015-05-20 19 20 0 aligarh
4 2016-05-12 17 27 1 aligarh
5 2016-05-25 16 40 5 aligarh