我有两个数据列表,一个是日期和平均值,另一个是索引和另一个值,它们看起来像:
#list 1: (in total 62 raws)
date d_mean
2017-3-1 15.3
2017-3-2 16.9
2017-3-3 18.2
...
2017-4-30 17.7
2017-5-1 15.6
#list2: (in total 10 raws)
sum
121 555
122 784
123 546
...
142 568
143 658
144 847
我想要:
- 将日期按周分组
- 计算每周的平均值并创建一个包含“week”列和“w_mean”列的新列表
- 使这两个列表大小相同,然后将它们相互绘制
我尝试使用
chunks = [avg_T1[x:x+7] for x in range(4, len(avg_T1), 7)]
但这只是划分了列表,我尝试添加
.mean()
最终,并没有真正起作用。
我是 Python 新手,我也很高兴听到是否有任何我需要阅读或练习的必要 Material 来帮助我习惯使用 Python。
最佳答案
我不确定我完全理解你的问题,但第一部分的答案应该是
df = df.set_index('date')
df['w_mean'] = df.resample('w').d_mean.mean().
这是数据帧每周的平均值(我认为您称之为列表)。
我不知道如何使两个列表具有相同的长度,因为它们在同一时间段内处于不同的频率。
您将拥有一列('w_mean'),该列每 7 天有一个值,其他地方都有 nan。
你可以做df.interpolate().plot()
是我能想到的最接近的事情......
关于python - 如何在 Python 3.6 中将日期划分为周并创建新列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46830478/