如何提取各cycle的parameter最大值与周期时长并生成新DataFrame
实现方案
直接使用pandas的分组聚合功能即可完成需求,完整代码如下:
import pandas as pd # 初始化样例数据 data = [['2021-01-22 08:00:00.000000+00:00', 2, 1], ['2021-01-22 08:00:01.000000+00:00', 3, 1], ['2021-01-22 08:00:04.000000+00:00', 2, 1], ['2021-01-22 09:00:00.000000+00:00', 5, 2], ['2021-01-22 09:00:02.000000+00:00', 4, 2], ['2021-01-22 09:00:04.000000+00:00', 4, 2], ['2021-01-22 09:00:06.000000+00:00', 4, 2], ] # 构建DataFrame并转换时间格式 df = pd.DataFrame(data, columns = ['time', 'parameter', 'cycle']) df['time'] = pd.to_datetime(df['time']) # 分组聚合得到目标结果 target_df = df.groupby('cycle').agg( # 计算每个cycle的时间时长:最大时间减最小时间取秒数 time_duration=('time', lambda x: (x.max() - x.min()).seconds), # 计算每个cycle的parameter最大值 max_parameter=('parameter', 'max') ).reset_index() # 打印输出验证 print(target_df)
运行后得到的target_df完全符合预期结构:
| cycle | time_duration | max_parameter |
|---|---|---|
| 1 | 4 | 3 |
| 2 | 6 | 5 |
内容的提问来源于stack exchange,提问作者Jason H
相关产品推荐
相关产品推荐

