import pandas as pd
import numpy as np
df = pd.read_csv('F:/result2024072219.csv', parse_dates=['time'], encoding="gbk")
# 检查数据读取结果
print(df.head())
angle_column = 'Angle' #角度列
time_column = 'time' #时间列
df[time_column] = pd.to_datetime(df[time_column])
# 提取小时部分作为分组依据
# df['time_column1'] = df[time_column].dt.hour
# time = df['time_column1']
df.set_index(time_column, inplace=True)
# 求均值前将无效值(-9999)替换为NaN,
df.replace(-9999, np.nan, inplace=True)
# 按照每10分钟和角度进行分组,并计算平均值
avg_by_azimuth = df.groupby([pd.Grouper(freq='10T'), angle_column]).mean()
# 将多级索引展平,将时间戳和角度分组都作为列,经groupy分组后这两列变为索引,不再是普通的列,直接引用找不到
avg_by_azimuth = avg_by_azimuth.reset_index()
avg_by_azimuth.to_csv("F:/result2024072219-10mean.csv") #打开文件需要手动处理下
#print(avg_by_azimuth)