以下是一个示例代码,可以实现按照5分钟汇总数据,并排除最大值和最小值:
import pandas as pd
# 创建一个示例数据框
data = {
'时间': ['2021-01-01 00:00:00', '2021-01-01 00:01:00', '2021-01-01 00:02:00',
'2021-01-01 00:03:00', '2021-01-01 00:04:00', '2021-01-01 00:05:00',
'2021-01-01 00:06:00', '2021-01-01 00:07:00', '2021-01-01 00:08:00',
'2021-01-01 00:09:00', '2021-01-01 00:10:00', '2021-01-01 00:11:00'],
'数值': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
}
df = pd.DataFrame(data)
# 将时间列转换为日期时间类型
df['时间'] = pd.to_datetime(df['时间'])
# 按照5分钟汇总数据,求每个时间段的最大值和最小值
df['时间'] = pd.to_datetime(df['时间'])
df['时间段'] = df['时间'].dt.floor('5min')
result = df.groupby('时间段')['数值'].apply(lambda x: x.nlargest(len(x)-1).nsmallest(len(x)-2)).reset_index(drop=True)
print(result)
运行以上代码,将得到以下结果:
0 2
1 3
2 4
3 5
4 6
5 7
6 8
7 9
8 10
Name: 数值, dtype: int64
结果中排除了最大值和最小值(1和11),并按照5分钟汇总数据。
下一篇:按照5分钟间隔选择时间。