python - 根据日期对 CSV 文件进行排序

标签 python csv sorting date

我正在制作一个可以处理任何 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 中根据日期(从旧到新)对整个文件进行排序,但找不到出路。

最佳答案

我认为 pandas 应该有所帮助 - 首先通过 header=[0,1] 和第一列将第一个和第二个 csv header 转换为 MultiIndex解析为日期时间,最后 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

关于python - 根据日期对 CSV 文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49462179/

相关文章:

python - tkinter 中的打字机效果

python - GLib.idle_add(function) 对不同的函数有不同的策略

python - Flask 返回 404 触发异常 block 并且不返回 Not Found

ruby-on-rails - rails csv.erb View 包含空格

python - Django "No Patterns"/循环导入错误

php - mysql_fetch_array 仅返回查询的最后一个值

c++ - 为什么 C++ StringStream 跳过输入文件中的第一个数字,但显示其余数字?

algorithm - 节省内存的归并排序

c++ - C+ 对 vector 元素的各个成员进行排序

将在过去 k 天内维护前 n 个项目的算法?