Pandas-时间(一)-数据类型:Timestamp(“时间戳”类型)【创建:①pd.Timestamp()->Timestamp;②pd.to_datetime(单个数据)】

时刻数据代表时间点,是pandas的数据类型,是将值与时间点相关联的最基本类型的时间序列数据

一、pd.Timestamp():用于生成单个时间戳

from datetime import datetime
import pandas as pd

date1 = datetime(2016, 12, 1, 12, 45, 30)  # 创建一个datetime.datetime
date2 = '2017-12-21'  # 创建一个字符串
data3 = '2017-12-21 15:00:22'

# 直接生成pandas的时刻数据 → 时间戳【数据类型为pandas的Timestamp】
t1 = pd.Timestamp(date1)
t2 = pd.Timestamp(date2)
t3 = pd.Timestamp(data3)

print("t1 = {0}, type(t1) = {1}".format(t1, type(t1)))
print("t2 = {0}, type(t2) = {1}".format(t2, type(t2)))
print("t3 = {0}, type(t3) = {1}".format(t3, type(t3)))

打印结果:

t1 = 2016-12-01 12:45:30, type(t1) = <class 'pandas._libs.tslibs.timestamps.Timestamp'>
t2 = 2017-12-21 00:00:00, type(t2) = <class 'pandas._libs.tslibs.timestamps.Timestamp'>
t3 = 2017-12-21 15:00:22, type(t3) = <class 'pandas._libs.tslibs.timestamps.Timestamp'>

Process finished with exit code 0

二、pd.to_datetime(单个数据):用于生成单个时间戳

pd.to_datetime():

  • 如果是单个时间数据,转换成pandas的时刻数据,数据类型为Timestamp
  • 多个时间数据,将会转换为pandas的DatetimeIndex数据类型

pd.to_datetime():如果输入是单个时间数据,转换成pandas的时刻数据,数据类型为Timestamp

from datetime import datetime
import pandas as pd

# pd.to_datetime():如果是单个时间数据,转换成pandas的时刻数据,数据类型为Timestamp
date1 = datetime(2016, 12, 1, 12, 45, 30)
date2 = '2017-12-21'
t1 = pd.to_datetime(date1)
t2 = pd.to_datetime(date2)
print("t1 = {0}, type(t1) = {1}".format(t1, type(t1)))
print("t2 = {0}, type(t2) = {1}".format(t2, type(t2)))
print('-' * 100)

打印结果:

t1 = 2016-12-01 12:45:30, type(t1) = <class 'pandas._libs.tslibs.timestamps.Timestamp'>
t2 = 2017-12-21 00:00:00, type(t2) = <class 'pandas._libs.tslibs.timestamps.Timestamp'>

Process finished with exit code 0

三、时间字符串与timestamp之间的转换

1、时间字符串转化成时间戳

将时间字符串转化成时间戳分为两步:

  • 第一步:将时间字符串转换成时间元组
  • 第二步:将时间元组转换成时间戳类型
import time
data['timestamp'] = data['OCC_TIM'].apply(lambda x:time.mktime(time.strptime(x,'%Y-%m-%d %H:%M:%S')))

其中,strptime函数是将字符串按照后面的格式转换成时间元组类型;mktime函数则是将时间元组转换成时间戳。

  • 如果原始时间字符串格式为 “2018-03-22 16:31:18”,则函数中使用“%Y-%m-%d %H:%M:%S”格式;
  • 如果原始时间字符串格式为 “20180322163118”,则函数中使用“%Y%m%d%H%M%S”格式;
    Pandas-时间(一)-数据类型:Timestamp(“时间戳”类型)【创建:①pd.Timestamp()->Timestamp;②pd.to_datetime(单个数据)】_第1张图片

四、时间字符串格式更改

1、“2013-10-10 23:40:00” -->“2013/10/10 23:40:00”

a = “2013-10-10 23:40:00” ,想改为 a = “2013/10/10 23:40:00”

方法:先转换为时间数组,然后转换为其他格式

timeArray = time.strptime(a,  "%Y-%m-%d %H:%M:%S" )
otherStyleTime = time.strftime( "%Y/%m/%d %H:%M:%S" , timeArray)

2、“20131010234000” -->“2013-10-10 23:40:00”

timeArray = time.strptime(a,  "%Y%m%d%H%M%S" )
otherStyleTime = time.strftime( "%Y-%m-%d %H:%M:%S" , timeArray)

pandas的

pd_file['timestamp'] = pd_file['时间'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(str(x),'%Y%m%d%H%M%S')))



参考资料:
【学习经典】时间序列处理(DatetimeIndex)
pandas实现将日期转换成timestamp
Python对DataFrame的 日期时间的处理
python 时间字符串和时间戳之间的转换
pandas实现将日期转换成timestamp
使用pandas怎么将日期转换成timestamp

你可能感兴趣的:(Pandas,Pandas,数据类型,Timestamp)