我对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)
答案 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