【问题标题】:Average in a dataframe数据框中的平均值
【发布时间】:2020-10-26 15:34:00
【问题描述】:
Date Timestamp μmoles
0 2019-06-11 17:21:35 13.5
1 2019-06-11 17:22:35 13.1
2 2019-06-11 17:23:35 13.0
3 2019-06-11 17:24:35 11.8
4 2019-06-11 17:25:35 11.8
... ... ... ...
394 2019-06-11 23:55:38 0.0
395 2019-06-11 23:56:38 0.0
396 2019-06-11 23:57:38 0.0
397 2019-06-11 23:58:38 0.0
398 2019-06-11 23:59:38 0.0
我正在尝试编写一个代码来计算下午 5 点的平均微摩尔数。有什么建议吗?
【问题讨论】:
标签:
python
pandas
dataframe
average
【解决方案1】:
您好,您可以尝试以下示例:
df.loc[df['Timestamp'].dt.hour == 17]['μmoles'].mean() # Follows the 24 hour time format
【解决方案2】:
这应该可以满足您的期望。
将Date 和Timestamp 字段组合成date_time 列
df["date_time"] = pd.to_datetime(df['Date'] + ' ' + df['Timestamp'])
将小时提取到单独的列中
df["hour"] = df["date_time"].apply(lambda x: x.hour)
打印输出
print(df.groupby(by=["hour"])["μmoles"].mean())
【解决方案3】:
你也可以试试这个:
df.loc[df['Timestamp'].str.split(':').str[0] == '17', 'μmoles'].mean()
【解决方案4】:
在这里,我选取以 17 开头的行:并仅计算选定行的平均值
df[df['Timestamp'].str.startswith('17:')]['μmoles'].astype('float64').mean()