python日期,字符互换
日期转字符串
1. 从Excel中读入数据,在excel中日期这一列数据格式类型是“短日期”
test = pd.read_excel('f:/test.xlsx')
test.head(2)
2. 查看读入数据的数据类型
test['日期'].apply(lambda x: type(x))
数据类型是时间戳,就可以通过year,month,day属性获取时间戳所指代的年月日信息。
-
输出时间戳对应的年月日信息
test['日期'].apply(lambda x: print(x.year, x.month, x.day)),输出的结果如下所示:
4. 将时间戳转换为字符串,查看数据类型
myString = test['日期'].apply(lambda x: x.strftime('%Y-%m-%d'))
myString.apply(lambda x: type(x))
输出结果如下,已经全部转变为str类型
字符串转日期
1. 使用的样例数据是长这样的
myString.apply(lambda x: print(x, type(x)))
2. 字符串到日期的变性操作
myString.apply(lambda x: type(time.strptime(x, '%Y-%m-%d')))
这个变性医生就是time的strptime内置函数,重要的事情说三遍
字符串转日期,就用time.striptime(),返回值类型是时间元组struct_time
字符串转日期,就用time.striptime(),返回值类型是时间元组struct_time
字符串转日期,就用time.striptime(),返回值类型是时间元组struct_time
如果你在网上检索“字符串转日期”的话,一般就会告诉你这些。使用time.striptime(),但是并没有继续分析返回的结果是什么类型,该怎么提取日期的年份、月份、日等信息。
之所以叫变性操作,是因为此步操作之后,已经实现了字符串到日期的本质改变。不过可能呈现的形式,如下图所示,并不是你最终想要的,接下来我们还要对其变形操作。
3. 日期元组的变形记
将时间元组转为时间戳
myString.apply(lambda x: time.mktime(time.strptime(x, '%Y-%m-%d')))
返回值是float类型的,依旧不是我们想要的形式,继续变形。
myString.apply(lambda x: datetime.datetime.fromtimestamp(time.mktime(time.strptime(x, '%Y-%m-%d'))))
使用datetime.datetime.fromtimestamp()进行变形,参数是时间戳类型。
看到结果已经大功告成了,是我们想要的形式。这时候,又可以欢快的使用year,month,day属性啦。
myString.apply(lambda x: datetime.datetime.fromtimestamp(time.mktime(time.strptime(x, '%Y-%m-%d'))).year)
字符串直接提取年/月/日
如果我们的目的,只是想要提取其中的年月日信息,字符串完全难不倒机灵的分析师。什么样的客人,什么样的待。见招拆招,举一反三才是人的核心竞争力。用个split分割一下就搞定。
myString.apply(lambda x: x.split('-'))
见识“日历”
calendar模块的函数都是日历相关的,例如打印某月的字符月历。
import calendar
cal = calendar.month(2017, 9)
print(cal)
转眼这个月就到月底了,就要放假了。学习要乘早,成长每天必不可少~
记得长按下方图片,识别图中二维码,关注“数据分析师手记”,跟三月桑一起进步^_^