如何获得每个特定时间范围熊猫的平均值

Posted

技术标签:

【中文标题】如何获得每个特定时间范围熊猫的平均值【英文标题】:How to get mean values per specific time range pandas 【发布时间】:2022-01-11 18:31:07 【问题描述】:

我想计算特定时间范围内每天的平均温度,例如日期 = 2021-03-11 时间 = 14:23:00 和 16:53:00 之间的平均温度。我尝试使用以下 pivot_table:

in_range_df = pd.pivot_table(df, values=['Air_temp'],
                 index=['Date','Time'],
                  aggfunc='Air_temp':np.mean)

数据框如下所示:

但是我现在如何指定时间范围呢?任何帮助表示赞赏。

【问题讨论】:

请不要发布代码、数据或 Tracebacks 的图像。 How to make good reproducible pandas examples 日期和时间列是字符串还是 datetime64 数据类型? ...df.dtypes. 这些是否回答了您的问题? Selecting Data between Specific hours in a pandas dataframe, Pandas how to filter DataFrame on time period, Filter by hour in Pandas?? 【参考方案1】:

通常你可以使用between

df[df["Datum"].between('2021-03-11 14:23:00',
                       '2021-03-11 16:53:00',)]["Air_temp"].mean()

【讨论】:

【参考方案2】:

首先您应该将Datum 列转换为datetime 类型:

df['Datum'] = pd.to_datetime(df['Datum'])

然后你可以像这样使用df.loc

t1 = '2021-03-11 14:23:00'
t2 = '2021-03-11 16:53:00'

df.loc[(df['Datum'] > t1) & (df['Datum'] < t2)]['Air_tmp'].mean()

【讨论】:

以上是关于如何获得每个特定时间范围熊猫的平均值的主要内容,如果未能解决你的问题,请参考以下文章

pandas TimeGrouper 自定义频率时间范围

MySQL for Rails 在特定日期范围内每天获得 AVERAGE 的最佳方法

使用熊猫创建每小时/每分钟时间范围

计算不同时间范围内项目的平均分钟数

在多个日期窗口上应用熊猫滚动的更快方法

如何使用熊猫根据列的值范围分离数据框?