【发布时间】:2020-12-13 14:17:16
【问题描述】:
我有每月数据,每年按所有月份划分,所以每个月(一月、二月等)有 25 个点(价值 25 年的月度数据)。 我每月拆分数据集的原因是因为我想每个月分别去趋势。 现在我遇到的问题是如何重建数据集以恢复正常的月度数据?
为了澄清,每月数据集被拆分为 1 月、2 月、3 月等,每年所有 1 月的 25 个点(总共 25 年)。
这是我将月份分开的功能:
def split_months(monthly_data):
month_split = []
for month in range(12):
month_split.append(monthly_data[month::12])
month_split = np.array(month_split)
return month_split
应用于我的时间序列的函数是:
lsds = split_months(ob_monthly(fwf_tot_grnl,26,28))
print(lsds.shape)
(12, 25)
原始时间序列基本上是这个精确的值数组(每个数字代表每月的平均值):
data = np.array(
[ 4.44 3.614 4.0460005 5.1229997 8.181001 23.88
48.895 26.740002 7.454 9.884 5.093 4.2770004
3.8999999 4.9040003 3.736 4.4030004 22.261 40.200005
62.825005 47. 20.904001 10.974 5.723 4.5070004
4.04 3.5040002 3.7760003 8.803 19.691 25.249998
64.494995 44.36 8.723998 5.4339995 4.6829996 4.1770005
3.8999999 3.4340003 3.726 11.383001 19.711 39.320004
81.924995 44.109993 15.584 6.5639997 9.043 5.3770003
4.9 5.644 5.426 9.943001 22.291 30.459997
45.245003 30.32 15.934 5.694 5.873 4.597
4.6400003 3.654 3.9460003 8.813 21.901 46.29
54.90499 33.729996 14.974 7.3840003 5.9030004 5.0770006
4.4700007 3.764 4.586 10.782999 19.921 59.17
77.784996 41.09 13.904 5.244 4.183 4.077
4.596 5.039 4.853 10.633999 11.36 25.538
66.06901 60.221 9.421 5.9580007 7.3010006 5.1370006
9.871 5.959001 6.2910004 11.011 15.582 41.586002
61.489 62.522 22.592005 8.76 7.284001 6.6680017
6.3420005 5.6429996 6.397001 13.169999 15.686999 35.1
69.087 61.676994 16.506002 8.993002 9.748 9.421001
7.5270014 6.089 6.802001 7.0059996 25.265001 52.129
71.71501 37.315002 23.323002 8.122001 6.8900003 6.7650013
7.5070014 5.7620006 6.369001 9.704 16.115002 61.615997
78.908 75.03501 24.828001 18.709 8.946001 7.6440015
7.036001 8.021001 6.745001 8.9609995 25.263998 53.342
66.784 60.457996 12.041001 8.851002 7.6539993 7.332002
8.109002 9.958001 10.364 9.103999 25.901 49.302998
77.47001 47.663006 17.101002 9.033002 12.889999 8.370002
7.4340014 6.643001 8.225 8.264002 27.967001 30.463001
71.04099 66.920006 15.218003 10.14 7.986001 7.931002
11.101 6.612001 7.8220005 8.818002 15.4159975 57.508
95.218994 76.62101 15.224001 9.743 9.98 7.506002
7.056001 6.377001 8.582001 11.452001 26.950003 48.557995
80.06599 46.355 13.2630005 13.066001 10.836 8.853002
7.9060006 6.7550006 7.1250005 8.478 18.976002 39.144997
74.204994 46.373 10.978003 8.085002 7.340002 7.4710016
8.144002 6.551 7.689001 11.208 36.002 66.902
102.02799 82.63899 26.937 11.016 9.987 8.977001
8.089001 6.610002 7.6930013 7.0730014 16.036 50.027996
103.17498 66.486 13.222001 8.791002 8.938003 7.6330013
7.270001 7.9689994 9.035001 15.478998 25.383999 85.61101
131.645 70.778 19.850004 15.265 12.019999 9.633
8.530001 7.2450004 9.307002 11.766 11.969999 38.693996
69.27799 44.055004 14.650001 11.418 9.868003 8.571002
8.055 7.061002 7.7850013 7.9510007 21.322002 45.706993
87.51201 66.734 16.962 9.555001 8.364002 8.183001
7.443001 7.8109994 6.9640007 6.980001 14.530002 38.425
78.09 38.747 18.515001 10.052002 8.556001 7.909002
7.576001 6.868001 7.470001 17.761002 23.598999 55.842
100.045 65.67799 10.5130005 7.649001 7.543002 6.8360014])
然后您可以应用我的函数 split_months(data) 将数据拆分为单独的月份,例如一月(25 个值)、二月(25 个值)等。
分别拆分每个月后如何返回月度数据?基本上我将如何返回原始数据数组(称为数据)?
【问题讨论】:
-
你能给我们一些样本数据和你想要的输出吗?
-
当然可以!我刚刚打印了我的每月数据数组,然后您可以使用我的 month_split 函数拆分每个月。然后现在的问题是回到每月数据,而不是将所有数据分成一月、二月等。
标签: python arrays numpy jupyter