时间/日期组件 - pd.Timestamp时间戳

1.1函数:

class pd.Timestamp(ts_input, freq=None, tz=None, unit=None,
year=None, month=None, day=None, hour=None, minute=None,
second=None, microsecond=None, nanosecond=None, tzinfo=None)#时间戳 ;替换datetime.datetime 

 1.2参数: 

ts_input:datetime-like,str,int,float#要转换为时间戳的值
freq: str,DateOffset
tz: str,pytz.timezone,dateutil.tz.tzfile或None#时间时区
unit : str#如ts_input为int或float,则用于转换的单位。该有效值为'D','h','m','s','ms','us'和'ns'
year, month, day :  int
hour, minute, second, microsecond : int, optional, default  0
nanosecond: int,optional,默认值为0
tzinfo: datetime.tzinfo,可选,默认无

2.构造方法:

# 实例1:日期时间的字符串
pd.Timestamp('2019-01-01T12') # Timestamp('2019-01-01 12:00:00')
pd.Timestamp('2019-01-16 20:22:2')# Timestamp('2019-01-16 20:22:02')

# 实例2:以秒为单位转换表示Unix纪元的浮点数
pd.Timestamp(1513393355.5, unit='s')# Timestamp('2019-12-16 03:02:35.500000')
pd.Timestamp(1513393355, unit='s', tz='US/Pacific')#特定时区
# Timestamp('2019-12-15 19:02:35-0800', tz='US/Pacific')

#实例3:模仿datetime.datetime:通过位置或关键字,不能两者混合
pd.Timestamp(2019, 1, 16, 20,26,30) #Timestamp('2019-01-16 20:26:30')

pd.Timestamp(year=2019, month=1, day=16, hour=20,
minute=28, second=30, microsecond=30)#Timestamp('2019-01-16 20:28:30.000030')

3.属性:

d=pd.Timestamp.now()
d=pd.Timestamp(d,tz='Asia/Shanghai')
d# Timestamp('2019-01-16 20:41:19.035134+0800', tz='Asia/Shanghai')

d.tz # <DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>
d.tzinfo# <DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>

d.day_name#替代d.weekday_name
# <bound method Timestamp.day_name of Timestamp('2019-01-16 20:41:19.035134+0800', tz='Asia/Shanghai')>

d.asm8# numpy.datetime64('2019-01-16T12:41:19.035134000')

d.weekofyear # 3
d.dayofweek # 2周三
d.dayofyear # 16
d.days_in_month# 31
d.daysinmonth # 31

d.day # 16
d.microsecond # 35134
d.minute # 41
d.month # 1
d.nanosecond # 0
d.quarter# 1
d.second# 19
d.week # 3
d.year # 2019
d.hour # 20

d.fold# 0
d.freq
d.freqstr

d.is_leap_year # False
d.is_month_end # False
d.is_month_start # False
d.is_quarter_end # False
d.is_quarter_start# False
d.is_year_end # False
d.is_year_start # False

d.value# 1547642479035134000

4.方法:

d=pd.Timestamp.now()
d=pd.Timestamp(d,tz='Asia/Shanghai')

d # Timestamp('2019-01-16 20:41:19.035134+0800', tz='Asia/Shanghai')

d.astimezone('UTC') # Timestamp('2019-01-16 12:41:19.035134+0000', tz='UTC')
d.ceil(pd.tseries.offsets.Day(2))# Timestamp('2019-01-18 00:00:00+0800', tz='Asia/Shanghai')

d.ctime() # 'Wed Jan 16 20:41:19 2019'
d.day_name() # 'Wednesday'
d.dst() # datetime.timedelta(0)
d.floor('2D') # Timestamp('2019-01-16 00:00:00+0800', tz='Asia/Shanghai')不太明白?

d.timestamp() # 1547642479.035134
d.fromtimestamp(1547642479.035134)# Timestamp('2019-01-16 20:41:19.035134')
d.utcfromtimestamp(d.timestamp()) # Timestamp('2019-01-16 12:41:19.035134')

d.toordinal() # 737075
d.fromordinal(d.toordinal())# Timestamp('2019-01-16 00:00:00')

d.isocalendar()# (2019, 3, 3)
d.round('D') # Timestamp('2019-01-17 00:00:00+0800', tz='Asia/Shanghai')

d.timetuple # <function Timestamp.timetuple>
d.timetuple()# time.struct_time(tm_year=2019, tm_mon=1, tm_mday=16, tm_hour=20, tm_min=41, tm_sec=19, tm_wday=2, tm_yday=16, tm_isdst=0)

d.to_datetime64()# numpy.datetime64('2019-01-16T12:41:19.035134000')

d.to_julian_date()# 2458500.3620258695
d.tzname() # 'CST'

d.isoformat()# '2019-01-16T20:41:19.035134+08:00'

5.实例:Series,DataFrame.dt访问时间戳属性方法

rng = pd.date_range('2019-01-01', '2019-01-03',freq='1D') #'2h30min' 'WOM-3FRI'每月第3个周五
s = pd.Series(pd.date_range('2019-01-01', '2019-01-03'))

s
'''''''''
0 2019-01-01
1 2019-01-02
2 2019-01-03
dtype: datetime64[ns]
'''
s.dt.day_name()
'''''''''
0 Tuesday
1 Wednesday
2 Thursday
dtype: object
'''
s.dt.day
'''''''''
0 1
1 2
2 3
dtype: int64
''' 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐