|
发表于 2023-7-12 22:33:02
|
显示全部楼层
本帖最后由 歌者文明清理员 于 2023-7-12 22:34 编辑
问题一的代码解答如下:
- import pandas as pd
- # 读取CSV文件
- data = pd.read_csv('your_data.csv')
- # 将时间戳列转换为datetime类型
- data['timestamp'] = pd.to_datetime(data['timestamp'])
- # 设置上午10点作为分界线
- boundary_time = pd.to_datetime('10:00:00').time()
- # 过滤出符合条件的数据
- filtered_data = data[data['timestamp'].dt.time >= boundary_time]
- # 提取每天的最大和最小量值行
- daily_max_min = filtered_data.groupby(filtered_data['timestamp'].dt.date)['value'].agg(['max', 'min'])
- # 输出结果
- print(daily_max_min)
复制代码 问题二的代码解答如下:
- import pandas as pd
- # 读取CSV文件
- data = pd.read_csv('your_data.csv')
- # 将时间戳列转换为datetime类型
- data['timestamp'] = pd.to_datetime(data['timestamp'])
- # 设置上午10点和下午10点作为白班和夜班的分界线
- morning_shift_end = pd.to_datetime('10:00:00').time()
- night_shift_end = pd.to_datetime('22:00:00').time()
- # 根据班次划分数据
- morning_shift_data = data[(data['timestamp'].dt.time >= morning_shift_end) & (data['timestamp'].dt.time < night_shift_end)]
- night_shift_data = data[(data['timestamp'].dt.time >= night_shift_end) | (data['timestamp'].dt.time < morning_shift_end)]
- # 提取每天每个班次的最大和最小量值行
- morning_shift_max_min = morning_shift_data.groupby(morning_shift_data['timestamp'].dt.date)['value'].agg(['max', 'min'])
- night_shift_max_min = night_shift_data.groupby(night_shift_data['timestamp'].dt.date)['value'].agg(['max', 'min'])
- # 输出结果
- print("白班最大值和最小值:")
- print(morning_shift_max_min)
- print("夜班最大值和最小值:")
- print(night_shift_max_min)
复制代码
请注意,以上代码中的'your_data.csv'应替换为实际的数据文件路径。 |
|