日期函数(padas高级接口dt的使用)

import pandas as pd
import random
from datetime import datetime

data = {
    'number': ['20200520201{}'.format(str(i))for i in range(1, 7)],
    'time': [datetime(2004, 10, 1, 10, 32, 45, 85), datetime(2000, 11, 27), 
                 datetime(2007, 1, 27), datetime(2002, 8, 15),
                 datetime(2008, 1, 1), datetime(2002, 12, 31)],
}
df = pd.DataFrame(data)

number	time
0	202005202011	2004-10-01 10:32:45.000085
1	202005202012	2000-11-27 00:00:00.000000
2	202005202013	2007-01-27 00:00:00.000000
3	202005202014	2002-08-15 00:00:00.000000
4	202005202015	2008-01-01 00:00:00.000000
5	202005202016	2002-12-31 00:00:00.000000

df['date'].dt.time//timetz         获取时间(带秒)

0    10:32:45.000085
1           00:00:00
2           00:00:00
3           00:00:00
4           00:00:00
5           00:00:00
Name: time, dtype: object

df['time'].dt.month//second(秒)

df['time'].dt.dayofweek//weekday     一周中的第几天

df['time'].dt.dayofyear    一年中的第几天

 df['time'].dt.day_name()    将日期转为星期

0      Friday
1      Monday
2    Saturday
3    Thursday
4     Tuesday
5     Tuesday
Name: time, dtype: object

df['time'].dt.is_leap_year   是否是闰年

df['birthday'].dt.is_month_end//is_month_start     是否是一个月的最后/第一天(quarter 季度,year 年)

df['time'].dt.to_period(freq='Y')     要获取的部分(M月,D日期)

df['time'].dt.to_pydatetime()          返回datetime模块时间类型

array([datetime.datetime(2004, 10, 1, 10, 32, 45, 85),
       datetime.datetime(2000, 11, 27, 0, 0),
       datetime.datetime(2007, 1, 27, 0, 0),
       datetime.datetime(2002, 8, 15, 0, 0),
       datetime.datetime(2008, 1, 1, 0, 0),
       datetime.datetime(2002, 12, 31, 0, 0)], dtype=object)

df['time'].dt.strftime('%Y/%m/%d %H:%I:%S')       修改日期格式

0    2004/10/01 10:10:45
1    2000/11/27 00:12:00
2    2007/01/27 00:12:00
3    2002/08/15 00:12:00
4    2008/01/01 00:12:00
5    2002/12/31 00:12:00
Name: time, dtype: object

df1=df['time'].dt.tz_localize('Asia/Shanghai')      按上海地区标准化

0   2004-10-01 10:32:45.000085+08:00
1          2000-11-27 00:00:00+08:00
2          2007-01-27 00:00:00+08:00
3          2002-08-15 00:00:00+08:00
4          2008-01-01 00:00:00+08:00
5          2002-12-31 00:00:00+08:00
Name: time, dtype: datetime64[ns, Asia/Shanghai]

df1.dt.tz    获取时区信息

<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值