pandas之時間序列

2022-01-10 06:34:55 字數 2729 閱讀 4084

pandas中提供了許多用來處理時間格式文字的方法,包括按不同方法生成乙個時間序列,修改時間的格式,重取樣等等。

in [7]: import pandas as pd

# 按起始和終止日期以及步長生成時間序列

in [8]: pd.date_range(start="20171212",end="20180101",freq="d")

out[8]:

datetimeindex(['2017-12-12', '2017-12-13', '2017-12-14', '2017-12-15',

'2017-12-16', '2017-12-17', '2017-12-18', '2017-12-19',

'2017-12-20', '2017-12-21', '2017-12-22', '2017-12-23',

'2017-12-24', '2017-12-25', '2017-12-26', '2017-12-27',

'2017-12-28', '2017-12-29', '2017-12-30', '2017-12-31',

'2018-01-01'],

dtype='datetime64[ns]', freq='d')

in [9]: pd.date_range(start="20171212",end="20180101",freq="10d")

out[9]: datetimeindex(['2017-12-12', '2017-12-22', '2018-01-01'], dtype='datetime64[ns]', freq='10d')

# 按起始日期,數量和步長生成時間序列

in [10]: pd.date_range(start="20171212",periods=10,freq="10d")

out[10]:

datetimeindex(['2017-12-12', '2017-12-22', '2018-01-01', '2018-01-11',

'2018-01-21', '2018-01-31', '2018-02-10', '2018-02-20',

'2018-03-02', '2018-03-12'],

dtype='datetime64[ns]', freq='10d')

in [11]: pd.date_range(start="20171212",periods=10,freq="m")

out[11]:

datetimeindex(['2017-12-31', '2018-01-31', '2018-02-28', '2018-03-31',

'2018-04-30', '2018-05-31', '2018-06-30', '2018-07-31',

'2018-08-31', '2018-09-30'],

dtype='datetime64[ns]', freq='m')

# 如果取不到最後一天,這個時間序列就會停止在前乙個生成的日期處

in [12]: pd.date_range(start="20171212",end="20180105",freq="10d")

out[12]: datetimeindex(['2017-12-12', '2017-12-22', '2018-01-01'], dtype='datetime64[ns]', freq='10d')

# coding=utf-8

import pandas as pd

from matplotlib import pyplot as plt

from matplotlib import font_manager

filepath = "./911.csv"

df = pd.read_csv(filepath)

font = font_manager.fontproperties(fname="c:\windows\fonts\msyh.ttc")

df["timestamp"] = pd.to_datetime(df["timestamp"])

df.set_index("timestamp", inplace=true)

temp_list = df["title"].str.split(":")

cate_list = [i[0] for i in temp_list]

df["cate"] = cate_list

plt.figure(figsize=(20, 8), dpi=80)

# 分組

for group_name, group_data in df.groupby(by="cate"):

# 對不同分類進行繪圖

count_by_month = group_data.resample("m").count()["title"]

_x = count_by_month.index

_y = count_by_month.values

plt.plot(range(len(_x)), _y, label=group_name)

_x = _x.strftime("%y-%m")

plt.xticks(range(len(_x)), _x, rotation=45)

plt.legend(loc="best")

plt.show()

結果如圖:

pandas 之時間排序

在 pandas 中,有乙個非常常用的函式 date range,尤其是在處理時間序列資料時,這個函式的作用就是產生乙個 datetimeindex,就是時間序列資料的索引。pandas.date range start none,end none,periods none,freq none,tz...

pandas時間序列

import pandas as pd import numpy as np import datetimedf pd.dataframe df 將時間序列轉化為標準的年月日的形式 df date pd.to datetime df date df 生成定頻日期與時間段序列 dt pd.date r...

pandas 時間序列基礎

時間序列 time series 資料是一種重要的結構化資料形式。資料點是根據某種規律定期出現的 比如每15秒 每5分鐘 每月出現一次 時間序列也可以是不定期的,沒有固定的時間單位或單位之間的偏移量。時間序列資料的意義取決於具體的應用場景。python標準庫包含用於日期 date 和時間 time ...