Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何同时显示聚合值和非聚合值?_Python_Pandas - Fatal编程技术网

Python 如何同时显示聚合值和非聚合值?

Python 如何同时显示聚合值和非聚合值?,python,pandas,Python,Pandas,我在一年的时间里每小时做一次时间序列。我希望在绘图中显示每日和/或每月的聚合值以及源数据。最可靠的方法应该是将这些聚合值添加到源数据帧中,并从中获取。我知道如何拍摄这样的每小时系列: 并在一年中一天一小时地展示如下: 但是我想要的是像下面这样显示整个内容,其中聚合数据与源数据一起显示。模拟示例: 我想为不同的时间聚合,如日、周、月、季度和年做这些 我知道这个问题有点宽泛,但我对这个问题的思考时间比我想承认的要长。谢谢你的建议 import pandas as pd import numpy

我在一年的时间里每小时做一次时间序列。我希望在绘图中显示每日和/或每月的聚合值以及源数据。最可靠的方法应该是将这些聚合值添加到源数据帧中,并从中获取。我知道如何拍摄这样的每小时系列:

并在一年中一天一小时地展示如下:

但是我想要的是像下面这样显示整个内容,其中聚合数据与源数据一起显示。模拟示例:

我想为不同的时间聚合,如日、周、月、季度和年做这些

我知道这个问题有点宽泛,但我对这个问题的思考时间比我想承认的要长。谢谢你的建议

import pandas as pd
import numpy as np

np.random.seed(1)

time = pd.date_range(start='01.01.2020', end='31.12.2020', freq='1H')
A = np.random.uniform(low=-1, high=1, size=len(time)).tolist()

df1 = pd.DataFrame({'time':time, 'A':np.cumsum(A)})
df1.set_index('time', inplace=True)
df1.plot()


times = pd.DatetimeIndex(df1.index)
df2 = df1.groupby([times.month, times.day]).mean()

df2.plot()

代码示例:

您要查找的是步骤函数,以及groupby的另一种方式:

# replace '7D' with '1D' to match your code
# but 1 day might be too small to see the steps
df2 = df1.groupby(df1.index.floor('7D')).mean()

plt.step(df2.index, df2.A, c='r')
plt.plot(df1.index, df1.A)
输出: