专栏首页Python爬虫与数据分析数据分析 ——— pandas日期处理(五)

数据分析 ——— pandas日期处理(五)

通过之前的文章,大家对pandas都有了基础的了解,在接下来的文章中就是对pandas的一些补充,pandas对日期处理函数。

一、pandas日期功能

1) 创建一个日期范围

通过指定周期和频率来使用date.range()函数,默认频率为/天

# pandas日期处理
import pandas as pd
import numpy as np

# data.range() 创建日期序列
print(pd.date_range('1/1/2011', periods=5))
"""
输出:
DatetimeIndex(['2011-01-01', '2011-01-02', 
                '2011-01-03', '2011-01-04',
                 '2011-01-05'],
              dtype='datetime64[ns]', freq='D')
"""

2)更改日期频率

# 更改日期频率
# 按月,输出每月的1号的前一天
print(pd.date_range('1/1/2011', periods=5, freq='M')) 
"""
输出:
DatetimeIndex(['2011-01-31', '2011-02-28', 
                '2011-03-31', '2011-04-30',
               '2011-05-31'],
              dtype='datetime64[ns]', freq='M')
"""

3)商业日期

bdate_range()表示商业日期范围,与date_range()不同,它不包括周六和周天

# bdate_range() 商业日期范围,不包括周六和周天
print(pd.bdate_range('8/2/2019', periods=5))
"""
输出:
DatetimeIndex(['2019-08-02', '2019-08-05', 
              '2019-08-06', '2019-08-07',
               '2019-08-08'],
              dtype='datetime64[ns]', freq='B')
"""

date_range()默认的是日历上的日期

import pandas as pd
import numpy as np
start = pd.datetime(2019, 8,2)
end = pd.datetime(2019, 8, 8)
print(pd.date_range(start, end))
"""
输出:
DatetimeIndex(['2019-08-02', '2019-08-03', 
              '2019-08-04', '2019-08-05',
               '2019-08-06', '2019-08-07',
                '2019-08-08'],
              dtype='datetime64[ns]', freq='D')
"""

二、pandas timedelta

1)通过传递字符串,创建timedelta对象:

import pandas as pd
# 通过传递字符串文字,我们可以创建一个timedelta对象。

print( pd.Timedelta('2 days 9 hours 15 minutes 30 seconds'))
"""
输出:
2 days 09:15:30
"""

2)用单位传递一个智能化素,创建一个timedelta:

# 通过用单位传递一个整数值,一个参数会创建一个Timedelta对象。
print(pd.Timedelta(6, unit='h'))
"""
输出:
0 days 06:00:00
"""

3)数据偏移

"""
数据偏移,诸如 - 周,日,小时,分钟,秒,毫秒,微秒,纳秒等
数据偏移量也可用于构建。
"""
print(pd.Timedelta(days=2))
"""
输出:
2 days 00:00:00
"""

三、python datetime

1) 获取今天的时间:

import datetime

print('the Date tody is:', datetime.datetime.today())
"""
输出:
the Date tody is: 2019-08-07 06:52:15.732195
"""

2)获取当前的年,月,星期

# 当前的年月份,星期
date_today = datetime.date.today() 
print(date_today) 
print('this year:',date_today.year) 
print('this Month:',date_today.month)
print('month name:',date_today.strftime('%B')) 
print('this week day:',date_today.day) 
print('week day Name:',date_today.strftime('%A'))
"""
输出:
2019-08-07
this year: 2019
this Month: 8
month name: August
this week day: 7
week day Name: Wednesday
"""

3)日期时间算术

# 日期时间算术
day1 = datetime.date(2019, 8, 7)
print('day1:', day1.ctime())

day2 = datetime.date(1995, 5, 12)
print('day2:', day2.ctime())

print('number of days:', day1-day2)
"""
输出:
day1: Wed Aug  7 00:00:00 2019
day2: Fri May 12 00:00:00 1995
number of days: 8853 days, 0:00:00

"""
date_today = datetime.date.today()

no_df_days =  datetime.timedelta(days =4)
before_four_days = date_today-no_df_days
print("before four days:", before_four_days)
"""
输出:
before four days: 2019-08-03
"""
after_four_days =  date_today + no_df_days
print("after fours days:", after_four_days)
"""
输出:
after fours days: 2019-08-11
"""

4)时间比较

# 时间的比较
date_today =  datetime.date.today()
no_of_days = datetime.timedelta(days=4)
before_four_days = date_today-no_df_days
after_four_days =  date_today + no_df_days

date1 = datetime.date(2018, 6, 6)

print('date1:', date1)

if date1 == before_four_days:
    print('same dates')
if date_today > date1:
    print('past Date')
if date1 < after_four_days:
    print('future date')
"""
输出:
date1: 2018-06-06
past Date
future date
"""

本文分享自微信公众号 - Python爬虫scrapy(python_scrapy),作者:a1131825850疯子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据分析 ———— numpy基础(一)

    准备了好长时间,想要写点关于数据分析的文章,但一直忙于工作,忙里抽闲更新一篇关于numpy的文章。

    andrew_a
  • 爬虫爬取智联招聘的职位信息(基础)

    简单爬取智联招聘的内容,爬之前在网上找关于这方面的代码,最后发现都不行,智联现在的招聘信息都是js加载,直接请求响应不到响应的内容,只能使用selenium,通...

    andrew_a
  • 数据分析 ——— numpy基础(三)

    上两篇文章我们介绍了numpy函数一些基本用法,以及其扩展函数的用法。在这里介绍一下numpy库来进行文件的读写。

    andrew_a
  • Android实现双层ViewPager嵌套

    有这样一个需求,用ViewPager实现图片滑动,其下方有一个tab,每一个tab的标签对应一组图片,在ViewPager中的图片切换到下一组时,tab的标签也...

    砸漏
  • Presto Event Listener开发

    同Hive Hook一样,Presto也支持自定义实现Event Listener,用于侦听Presto引擎执行查询时发生的事件,并作出相应的处理。我们可以利用...

    叁金
  • Python 元类

    在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:

    Devops海洋的渔夫
  • centos7搭建LDAP服务器

    2.设置openldap管理员密码,根据提示输入密码,会返回加密的密码字符串,保留好这个字符串

    贰叁壹小窝
  • RPC-Thrift(一)

      注意点:1)Thrift客户端和服务端使用的I/O模型必须一致,上例中都是使用阻塞式同步I/O模型。

    在周末
  • Python 模块学习

    py3study
  • 自己手写一个Spring MVC框架

    Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,但了解之后才知道有很多巧妙的设计在里面。

    用户1093975

扫码关注云+社区

领取腾讯云代金券