重采样会根据得到的日期参数把数据进行展示,会把数据从一个频率转换到另一个频率,
主要有如下三类:
1.上采样:从低频率到高频率(比如:从每月到每天)
2.下采样:从高频率到低频率(比如:从每天到每月)
3.原样采样:采样频率不变(比如从每月得第一个星期四到每月得最后一个星期五)
resample有图个rule参数,用于接收偏移量字符串,对于改参数可能取得的值可以参考date_range创建日期范围freq参数取值表及创建示例_我就是一个小怪兽的博客-CSDN博客
import pandas as pd
ebola=pd.read_csv(r'D:\pandas活用\pandas_for_everyone-master\data/country_timeseries.csv',parse_dates=[0])
ebola['date_dt']=pd.to_datetime(ebola['Date'],format='%m/%d/%Y')
ebola.index=ebola.date_dt#将ebola的索引设置为date_dt列,即datetime类型
print(ebola.info())
'''<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 122 entries, 2015-01-05 to 2014-03-22
Data columns (total 19 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 122 non-null datetime64[ns]
1 Day 122 non-null int64
2 Cases_Guinea 93 non-null float64
3 Cases_Liberia 83 non-null float64
4 Cases_SierraLeone 87 non-null float64
5 Cases_Nigeria 38 non-null float64
6 Cases_Senegal 25 non-null float64
7 Cases_UnitedStates 18 non-null float64
8 Cases_Spain 16 non-null float64
9 Cases_Mali 12 non-null float64
10 Deaths_Guinea 92 non-null float64
11 Deaths_Liberia 81 non-null float64
12 Deaths_SierraLeone 87 non-null float64
13 Deaths_Nigeria 38 non-null float64
14 Deaths_Senegal 22 non-null float64
15 Deaths_UnitedStates 18 non-null float64
16 Deaths_Spain 16 non-null float64
17 Deaths_Mali 12 non-null float64
18 date_dt 122 non-null datetime64[ns]
dtypes: datetime64[ns](2), float64(16), int64(1)
memory usage: 19.1 KB
None'''
down=ebola.resample('M').mean()#下采样
print(down.iloc[:5,:5])
''' Day Cases_Guinea Cases_Liberia Cases_SierraLeone \
date_dt
2014-03-31 4.500000 94.500000 6.500000 3.333333
2014-04-30 24.333333 177.818182 24.555556 2.200000
2014-05-31 51.888889 248.777778 12.555556 7.333333
2014-06-30 84.636364 373.428571 35.500000 125.571429
2014-07-31 115.700000 423.000000 212.300000 420.500000
Cases_Nigeria
date_dt
2014-03-31 NaN
2014-04-30 NaN
2014-05-31 NaN
2014-06-30 NaN
2014-07-31 1.333333 '''
up=down.resample('D').mean()
print(up.iloc[:5,:5])
''' Day Cases_Guinea Cases_Liberia Cases_SierraLeone Cases_Nigeria
date_dt
2014-03-31 4.5 94.5 6.5 3.333333 NaN
2014-04-01 NaN NaN NaN NaN NaN
2014-04-02 NaN NaN NaN NaN NaN
2014-04-03 NaN NaN NaN NaN NaN
2014-04-04 NaN NaN NaN NaN NaN'''