问题:
按日期对列表进行排序时会出现10、11、12月排到了前面去:
解决思路:
把日期标准化,转化成下面这样:
2015/01
2015/10
2015/11
2015/12
2015/02
2015/03
······
解决方法:
原始数据如下:
import pandas as pd
import datetime
#导入数据集
data = pd.read_csv("dataset.csv")
data = data.loc[:, ['date', 'value']] # 获取数据集中列名为date和value这两列
# 标准化日期,获取时间的“年、月、日”
def change_date(s):
s = datetime.datetime.strptime(s, "%Y/%m/%d") # 把日期标准化,转化结果如:2015/1/4 => 2015-01-04 00:00:00
s = str(s) # 上一步把date转化为了时间格式,因此要把date转回str格式
return s[:10] # 只获取年月日,即“位置10”之前的字符串
data['date'] = data['date'].map(change_date) # 用change_date函数处理列表中date这一列,如把“2015/1/4”转化为“2015-01-04”
data = data.sort_values(by='date') # 按date这一列进行排序
print(data)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
输出如下:
第1列为index,第2列为date,第3列为value