Time series of Python data analysis

Keywords: Python Mobile

1. Time series type

  • Timestamp (timestamp)
    That is, a certain moment
  • Fixed period
    For example, January 2018 or January 1, 2018
  • Time interval
    Indicated by start and end timestamps

2. Python processing module

Python standard library contains data types for date and time data, mainly using datetime, time, calendar modules.
The datetime module often uses two instance methods, datetime and timedelta

  • datetime: store date and time in milliseconds
  • timedelta: time difference between two datetime objects

Introducing datetime module

import datetime

Generate datetime object

start_date = datetime(2018,1,1)
print(type(start_date))
end_date = datetime(2018,12,31)
print(type(end_date))
delta_date = end_date - start_date
print(type(delta_date))

String conversion datetime object

  • datetime.strptime()
    date_str = '2018-1-1'
    date_strptime = datetime.strptime(date_str, '%Y-%m-%d')
    print(type(date_strptime))
    print(date_strptime)

  • dateutil.parser.parse()
    date_str2 = '1-1-2018'
    date_parse = parse(date_str2)
    print(type(date_parse))
    print(date_parse)

  • pandas.to_datetime()
    date_arr = ['1/1/2018','12/31/2018']
    date_todatetime = pd.to_datetime(date_arr)
    print(type(date_todatetime))
    print(date_todatetime)

datetime object conversion string

  • str

    start_date = datetime(2018,1,1)
    str_start_date = str(start_date)
    print(type(str_start_date))
    print(str_start_date)

  • strftime
    start_date = datetime(2018,1,1)
    strftime_start_date = start_date.strftime('%Y-%m-%d')
    print(type(strftime_start_date))
    print(strftime_start_date)

3. Pandas time processing

  • serial

    ts = pd.Series(np.random.randn(6), index=date_list)
    print(type(ts))
    print(ts)

  • date_range()

    dates = pd.date_range('2018-1-1', periods=5, freq='W-SAT') 
    print(dates)
    print(pd.Series(np.random.randn(5), index=dates))

    date_index = pd.date_range('2018/1/1', '2018/2/1')
    print(date_index)

  • mobile data
    ts = pd.Series(np.random.randn(5), index=pd.date_range('20180101', periods=5, freq='W-SAT'))
    print(ts)

    print(ts.shift(1))

    print(ts.shift(-1))

Posted by Liz_SA on Fri, 08 Nov 2019 13:18:33 -0800