使用熊猫读取每日时间序列并每月重新采样

时间:2018-08-15 22:06:46

标签: python pandas

我对Python很陌生。我通常使用scikits.timeseries处理时间序列数据。现在,我想使用Panda之类的read_csv与下面显示的代码相同。我使用read_csv手册来读取文件,但是我不知道如何将每日时间序列转换为每月时间序列。

输入是从2002-01-01到2011-12-31的一列每日数据,因此长度为3652。输出将是从2002-01到2011-12的一列每月数据,因此长度是120。

import numpy as np
import pandas as pd
import scikits.timeseries as ts
stgSim = ts.time_series(np.loadtxt('examp.txt', delimiter = ',' , skiprows  = 1    ,
                                                       usecols   = [37] ),
                                            start_date ='2002-01-01',
                                            freq='d'                     )

v4 = ts.time_series(np.random.rand(3652),start_date='2002-01-01',freq='d')                              
startD = stgSim.date_to_index(v4.start_date) 
stgSim = stgSim[startD:]
stgSimAnMonth = stgSim.convert(freq='m',func=np.ma.mean)

1 个答案:

答案 0 :(得分:1)

您要使用resample来将每日数据转换为每月数据吗?

rng = np.random.RandomState(42)    # set a random seed so that result is repeatable
ts = pd.Series(data=rng.rand(100),
               index=pd.date_range('2018/01/01', periods=100, freq='D'))
mts = ts.resample('M').mean()      # resample (convert) to monthly data

ts就像

2018-01-01    0.374540
2018-01-02    0.950714
2018-01-03    0.731994
...
2018-04-08    0.427541
2018-04-09    0.025419
2018-04-10    0.107891

现在您应该像mts

2018-01-31    0.444047
2018-02-28    0.498545
2018-03-31    0.477100
2018-04-30    0.450325