pandas时间类型数据处理,dt模块

在数据处理和清洗的过程中我们经常会遇到时间类型的数据

1.时间序列的处理
如果读入的时间列数据是string类型,我们可以先进行时间序列的转换
在这里插入图片描述

df['login_time'] = pd.to_datetime(df['login_time'])
#或者
df.loc[:, '日期'] = pd.to_datetime(df.loc[:, '日期'], format='%Y/%m/%d', errors='coerce')

这样处理后可以使用dt模块,如果需要添加日期对应的周数或者月份
原始数据
在这里插入图片描述

1 添加星期名称

df['daynameofweek'] = df['login_time'].dt.day_name()

在这里插入图片描述

2 只保留数据的时分秒

df['数据时间']=df['数据时间'].dt.time

在这里插入图片描述返回类型为dtype: object

3只保留数据的年月日

dt.date 和 dt.normalize()返回一个日期的年月日。但不同的是date返回的Series是object类型的,normalize()返回的Series是datetime64类型的。

df['数据时间']=df['数据时间'].dt.date

在这里插入图片描述

df['数据时间']=df['数据时间'].dt.normalize()

在这里插入图片描述

4 返回年,月,日等

1.2 dt.year、dt.month、dt.day、dt.hour、dt.minute、dt.second、dt.isocalendar().week 分别返回日期的年、月、日、小时、分、秒及一年中的第几周

train_data['年']=train_data['数据时间'].dt.year
train_data['月']=train_data['数据时间'].dt.month
train_data['日']=train_data['数据时间'].dt.day
train_data['小时']=train_data['数据时间'].dt.hour
train_data['一年中的第几周']=train_data['数据时间'].dt.isocalendar().week

返回的都是整数,除了isocalendar().week返回的是dtype: UInt32

df['dayofweek']=df['数据时间'].dt.dayofweek   # 获取一周的第几天

小技巧
也可以读取数据的时候,直接转换成时间类型,参数parse_dates=

offline_train = pd.read_csv(r'D:\train.csv',
                           parse_dates=['Date_received', 'Date'],encoding='gbk')
  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开始King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值