python数据分析时间序列如何提取一个月的数据

Python018

python数据分析时间序列如何提取一个月的数据,第1张

python做数据分析时下面就是提取一个月数据的教程1. datetime库

1.1 ​​datetime.date​​

1) ​​datetime.date.today()​​ 返回今日,输出的类型为date类

import datetime

today = datetime.date.today()

print(today)

print(type(today))

–>输出的结果为:

2020-03-04

<class 'datetime.date'>

将输出的结果转化为常见数据类型(字符串)

print(str(today))

print(type(str(today)))

date = str(today).split('-')

year,month,day = date[0],date[1],date[2]

print('今日的年份是{}年,月份是{}月,日子是{}号'.format(year,month,day))

–>输出的结果为:(转化为字符串之后就可以直接进行操作)

2020-03-04

<class 'str'>

今日的年份是2020年,月份是03月,日子是04号

2) ​​datetime.date(年,月,日)​​,获取当前的日期

date = datetime.date(2020,2,29)

print(date)

print(type(date))

–>输出的结果为:

2020-02-29

<class 'datetime.date'>

1.2 ​​datetime.datetime​​

1) ​​datetime.datetime.now()​​输出当前时间,datetime类

now = datetime.datetime.now()

print(now)

print(type(now))

–>输出的结果为:(注意秒后面有个不确定尾数)

2020-03-04 09:02:28.280783

<class 'datetime.datetime'>

可通过​​str()​​转化为字符串(和上面类似)

print(str(now))

print(type(str(now)))

–>输出的结果为:(这里也可以跟上面的处理类似分别获得相应的数据,但是也可以使用下面更直接的方法来获取)

2020-03-04 09:04:32.271075

<class 'str'>

2) 通过自带的方法获取年月日,时分秒(这里返回的是​​int​​整型数据,注意区别)

now = datetime.datetime.now()

print(now.year,type(now.year))

print(now.month,type(now.month))

print(now.day,type(now.day))

print(now.hour,type(now.hour))

print(now.minute,type(now.minute))

print(now.second,type(now.second))

print(now.date(),type(now.date()))

print(now.date().year,type(now.date().year))

–>输出的结果为:(首先注意输出中倒数第二个还是上面的​​datetime.date​​​对象,这里是用来做时间对比的,同时除了这里的​​datetime.datetime​​​有这种方法,​​datetime.date​​​对象也有。因为此方法获取​​second​​是取的整型数据,自然最后的不确定尾数就被取整处理掉了)

2020 <class 'int'>

3 <class 'int'>

4 <class 'int'>

9 <class 'int'>

12 <class 'int'>

55 <class 'int'>

2020-03-04 <class 'datetime.date'>

2020 <class 'int'>

这需求折腾了我半天..

import time

import datetime as datetime

def late_time(time2):

    # 先获得时间数组格式的日期

    #time2是外部传入的任意日期

    now_time = datetime.datetime.strptime(time2, '%Y-%m-%d')

  #如需求是当前时间则去掉函数参数改写      为datetime.datetime.now()

    threeDayAgo = (now_time - datetime.timedelta(days =30))

    # 转换为时间戳

    timeStamp =int(time.mktime(threeDayAgo.timetuple()))

    # 转换为其他字符串格式

    otherStyleTime = threeDayAgo.strftime("%Y-%m-%d")

    return otherStyleTime

a = late_time("2019-3-30")

print(a)# 打印2018-02-28

使用time模块的time.localtime()获取当前日期,使用calendar模块calendar.monthrange的来获取指定月份的天数。即可得到月初日期和月末日期,代码如下:

import calendar

import time

day_now = time.localtime()

day_begin = '%d-%02d-01' % (day_now.tm_year, day_now.tm_mon) # 月初肯定是1号

wday, monthRange = calendar.monthrange(day_now.tm_year, day_now.tm_mon) # 得到本月的天数 第一返回为月第一日为星期几(0-6), 第二返回为此月天数

day_end = '%d-%02d-%02d' % (day_now.tm_year, day_now.tm_mon, monthRange)

print('月初日期为:',day_begin, '月末日期为:',day_end)