Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助!
相信大家在平时Python进行时间序列分析的时候一定会经常遇到需要将时间格式转化为字符串格式或者需要把字符串格式的时间转化为时间格式,大家一定会遇到这两个方法:strftime和strptime,相信不少同学还不太清楚两者的区别,今天我们就来讲讲:
1.首先我们构造一个时间序列的DataFrame
代码如下:
import pandas as pd
import numpy as np
data = pd.DataFrame(np.array([[1,2,3,4],[4,5,6,4],[7,8,9,4],[5,6,8,9],[10,23,4,5]]),
columns=['a','b','c','d'],
index=pd.date_range("2020-1-1","2020-1-5")
)
打印一下结果:
a b c d
2020-01-01 1 2 3 4
2020-01-02 4 5 6 4
2020-01-03 7 8 9 4
2020-01-04 5 6 8 9
2020-01-05 10 23 4 5
我们可以看看这个DataFrame的索引格式:
print(data.index)
结果如下,我们可以看出这个DateFrame的索引的格式是DatetimeIndex:
2.将DatetimeIndex中的值获取出来
print(data.index[1])
我们看看结果:
这个时候我们发现DatetimeIndex中的标量值其实是Timestamp对象(时间戳对象)。
3.将Timestamp对象通过strftime转化为字符串格式
## 方法1
str(data.index[1])
## 方法2 通过strftime
data.index[1].strftime('%Y-%m-%d')
data.index[1].strftime('%Y-%m-%d %H-%M-%S')
打印看看三个结果,看是不是就转换成了字符串啦:
'2020-01-02 00:00:00'
'2020-01-02'
'2020-01-02 00-00-00'
4.将字符串对象通过strptime转化为时间格式
from datetime import datetime
str_time = '2020-01-02'
datetime.strptime(str_time,'%Y-%m-%d')
我们打印一下结果看看,是不是已经从字符串格式转化为了时间格式啦(datetime格式):
datetime.datetime(2020, 1, 2, 0, 0)
这里使用strptime需要注意的地方是,红圈里面的参数需要与篮圈里面的字符串格式匹配:
总结: 使用strptime可以将字符串对象转化为时间格式(datetime格式),并且strptime需要传递两个参数,而使用strftime可以将时间格式对象转化为字符串格式,其只用传递一个参数,大家不要混淆啦!
好啦今天的文章就分享到这里啦!
版权声明:本文为qq_41281698原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。