1.时间序列的生成
pd.date_range(start=“20201125”,periods=10,freq=“M”)
注意索引词:periods 和 freq!!!
import pandas as pd
import numpy as np
df2=pd.date_range(start="20201125",periods=10,freq="M")
print(df2)
C:\Users\zxh\Anaconda3\python.exe D:/PycharmProjects/MyTest/day5.py
DatetimeIndex(['2020-11-30', '2020-12-31', '2021-01-31', '2021-02-28',
'2021-03-31', '2021-04-30', '2021-05-31', '2021-06-30',
'2021-07-31', '2021-08-31'],
dtype='datetime64[ns]', freq='M')
pd.to date_time( , )
时间格式化
2.pandas 重采样和聚合
一个时间频率转换为另一种时间频率
pd.resample().mean/count()
df.head( )
df.info( )
2.1时间类型转化period方法
#把分开的时间字符串通过periodIndex的方法转化为pandas的时间类型
period = pd.PeriodIndex(year=df["year"],month=df["month"],day=df["day"],hour=df["hour"],freq="H")
df["datetime"] = period
# print(df.head(10))
_x = [i.strftime("%Y%m%d") for i in _x]
_x_china = [i.strftime("%Y%m%d") for i in data_china.index]
2.2降采样
#进行降采样
df = df.resample("7D").mean()
报错处理
'utf-8' codec can't decode byte 0xbb in position 25: invalid start byte
!!!把路径名都改成中文就完事。
#画图
_x = data.index
_x = [i.strftime("%Y%m%d") for i in _x]
_x_china = [i.strftime("%Y%m%d") for i in data_china.index]
print("!!!!!!",len(_x_china),len(_x_china),_x)
_y = data.values
_y_china = data_china.values
结果
!!!!!! 313 313 ['20100101', '20100108', '20100115', '20100122', '20100129', '20100205'