pandas中to_datetime()时间处理

pandas.to_datetime(arg,errors =‘raise’,utc = None,format = None,unit = None )

pandas通常用于处理成组日期,不管这些日期是DataFrame的轴索引还是列,to_datetime方法可以解析多种不同的日期表示形式。

(1)获取指定的时间和日期

例如:

df[’'date]数据类型为“object”,通过pd.to_datetime将该列数据转换为时间类型,即datetime。

df[‘date_formatted’]=pd.to_datetime(df[‘date’],format=’%Y-%m-%d’)
在这里插入图片描述

pandas时间序列基础以及时间、日期处理

pandas最基本的时间序列类型就是以时间戳(时间点)(通常以python字符串或datetime对象表示)为索引的Series:

dates = [‘2017-06-20’,‘2017-06-21’,
‘2017-06-22’,‘2017-06-23’,‘2017-06-24’,‘2017-06-25’,‘2017-06-26’,‘2017-06-27’]
import numpy as np
ts = pd.Series(np.random.randn(8),index = pd.to_datetime(dates))
ts
2017-06-20 0.788811
2017-06-21 0.372555
2017-06-22 0.009967
2017-06-23 -1.024626
2017-06-24 0.981214
2017-06-25 0.314127
2017-06-26 -0.127258
2017-06-27 1.919773
dtype: float64

ts.index
DatetimeIndex([‘2017-06-20’, ‘2017-06-21’, ‘2017-06-22’, ‘2017-06-23’,
‘2017-06-24’, ‘2017-06-25’, ‘2017-06-26’, ‘2017-06-27’],
dtype=‘datetime64[ns]’, freq=None)
pandas不同索引的时间序列之间的算术运算会自动按日期对齐
ts[::2]#从前往后每隔两个取数据
2017-06-20 0.788811
2017-06-22 0.009967
2017-06-24 0.981214
2017-06-26 -0.127258
dtype: float64
ts[::-2]#从后往前逆序每隔两个取数据
2017-06-27 1.919773
2017-06-25 0.314127
2017-06-23 -1.024626
2017-06-21 0.372555
dtype: float64
ts + ts[::2]#自动数据对齐
2017-06-20 1.577621
2017-06-21 NaN
2017-06-22 0.019935
2017-06-23 NaN
2017-06-24 1.962429
2017-06-25 NaN
2017-06-26 -0.254516
2017-06-27 NaN
dtype: float64

索引为日期的Series和DataFrame数据的索引、选取以及子集构造

方法:
1).index[number_int]
2)[一个可以被解析为日期的字符串]
3)对于,较长的时间序列,只需传入‘年’或‘年月’可返回对应的数据切片
4)通过时间范围进行切片索引

ts
2017-06-20 0.788811
2017-06-21 0.372555
2017-06-22 0.009967
2017-06-23 -1.024626
2017-06-24 0.981214
2017-06-25 0.314127
2017-06-26 -0.127258
2017-06-27 1.919773
dtype: float64

ts[ts.index[2]]
0.0099673896063391908

ts[‘2017-06-21’]#传入可以被解析成日期的字符串
0.37255538918121028

ts[‘21/06/2017’]
0.37255538918121028

ts[‘20170621’]
0.37255538918121028

ts[‘2017-06’]#传入年或年月
2017-06-20 0.788811
2017-06-21 0.372555
2017-06-22 0.009967
2017-06-23 -1.024626
2017-06-24 0.981214
2017-06-25 0.314127
2017-06-26 -0.127258
2017-06-27 1.919773
dtype: float64

ts[‘2017-06-20’:‘2017-06-23’]#时间范围进行切片
2017-06-20 0.788811
2017-06-21 0.372555
2017-06-22 0.009967
2017-06-23 -1.024626
dtype: float64

带有重复索引的时间序列
1).index.is_unique检查索引日期是否是唯一的
2)对非唯一时间戳的数据进行聚合,通过groupby,并传入level = 0(索引的唯一一层)

dates = pd.DatetimeIndex([‘2017/06/01’,‘2017/06/02’,‘2017/06/02’,‘2017/06/02’,‘2017/06/03’])
dates

DatetimeIndex([‘2017-06-01’, ‘2017-06-02’, ‘2017-06-02’, ‘2017-06-02’,
‘2017-06-03’],
dtype=‘datetime64[ns]’, freq=None)

dup_ts = pd.Series(np.arange(5),index = dates)
dup_ts

2017-06-01 0
2017-06-02 1
2017-06-02 2
2017-06-02 3
2017-06-03 4
dtype: int32

dup_ts.index.is_unique

False

dup_ts[‘2017-06-02’]

2017-06-02 1
2017-06-02 2
2017-06-02 3
dtype: int32

grouped = dup_ts.groupby(level=0).mean()

grouped

2017-06-01 0
2017-06-02 2
2017-06-03 4
dtype: int32

dup_df = pd.DataFrame(np.arange(10).reshape((5,2)),index = dates )
dup_df

  • 7
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: pandas的to_datetime()函数是将字符串或者数字转换成日期时间格式的函数。它可以将字符串、整数、浮点数等不同类型的数据转换成日期时间格式,并且可以自定义日期时间格式。to_datetime()函数是pandas非常常用的函数之一,可以方便地处理时间序列数据。 ### 回答2: pandasto_datetime()函数是一个将传入的日期字符串转换为datetime类型的函数。pandas这个包,给我们解决了很多数据清洗的问题,其很多数据清洗都需要对日期或时间字段进行处理,因此pandas这个包非常适合数据处理。 这个函数在pandas的引入,为我们日期和时间处理带来了很大的便捷性,如果有很多数据要处理时间或日期有关的,to_datetime()函数能够把这些字段转化为pandasDatetimeIndex对象,它是一个高效的日期索引器。 当我们需要处理时间序列数据时,常用的方法是将日期字符转成pandas自带的时间戳索引,这样就方便了时间序列的切片、数据筛选等。 此外,to_datetime()函数还可以处理的日期格式非常丰富,我们可以在函数传递一个格式字符串,指定日期字符串的格式,这时函数会根据我们指定的格式变换日期的数据类型;另外,to_datetime()函数还支持处理从网络获取的日期字符串,这些日期字符串可能包含时区信息,可以使用to_datetime()函数根据传入的参数进行时区的转换。 总之,to_datetime()函数在pandas是一个非常重要且常用的函数,可以方便地将日期字符串转换为可以处理的日期索引,可以更加方便地对时间序列数据进行处理和分析。 ### 回答3: pandas的to_datetime()函数是用于将一个字符串或者日期格式的数据转化为pandas时间格式。对于数据分析的需求,经常需要对时间序列的数据进行处理和分析,将原始数据转化为pandas时间格式,可以更方便地进行时间序列数据的处理,例如对数据按照时间进行排序、切片、聚合、重采样等。 to_datetime()函数的主要参数有三个,分别是arg、format和infer_datetime_format。arg表示需要转化为时间格式的原始数据,可以是一个字符串或者一个数组,格式可以是多种多样的,包括标准的ISO8601时间格式,如“2019-04-01”、“2019-04-01 12:00:00”等,也可以是其他各种自定义格式的时间字符串。format表示需要使用的日期格式,可以使用Python常用的日期格式,例如“%Y-%m-%d %H:%M:%S”等,也可以使用类似ISO8601时间格式的“yyyy-mm-dd”等。infer_datetime_format表示是否自动推导出日期格式,可以根据数据的情况自动推导出日期格式,也可以手动指定日期格式。 to_datetime()函数支持的数据类型包括pandas的Series、DataFrame和Panel,可以对单个列或多个列进行转化。可以使用to_datetime()函数结合其他函数如fillna()、resample()、dt()等进行时间序列数据的处理和分析。需要注意的是,如果原始数据存在非法的时间格式,to_datetime()函数会将其转化为NaT(Not a Time)格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值