计算pandas dataframe中一列的6小时平均值,将值作为文本绘制在图表上

2024-04-19 21:07:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python创建了一个基本的pandas数据帧,它有多个列。我创建的第一列是包含日期时间信息的多个列的时间戳。其他列只是每个相应时间的数据。在

我想每6小时得到这些值的平均值,然后在我用其他数据创建的折线图中以文本的形式绘制这些值,但在曲线图的顶部(所以在直线内)。在

我尝试了多种方法,我只是不知道如何从一个列中得到6小时的平均值,更不用说去绘制这些值了。在

具体地说,我只需要其中2列的6小时平均值,这两列是我用来绘制线图的。对于解决方案,在这种情况下,选择哪一个并不重要。在

以防万一。下面是用于创建datetime列的代码。在

#convert first time columns into one datetime column
df['datetime'] = pd.to_datetime(df[['year', 'month', 'day', 'hour', 'minute', 'second']])

数据如下所示:

^{pr2}$

任何帮助都将不胜感激。在


Tags: 数据方法文本信息pandasdfdatetime时间
1条回答
网友
1楼 · 发布于 2024-04-19 21:07:28

你可以这样计算6h平均值:

df.set_index('datetime').resample('6h').mean()

这是每6小时一个值。如果你想要一个滚动平均数,你需要检查一下pd.DataFrame.rolling。在

如果您使用matplotlib或基于它的包,如seaborn,它将讨论打印文本。可以使用日期作为x坐标,使用某个最大值作为y坐标。如果你已经在用别的东西了,你的问题就得更具体些。在

相关问题 更多 >