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 ...