You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas DataFrame提取待转换数据量的极值及均值并关联时间指标

解决方案

首先需要将所有时间列转换为timedelta类型,才能正确进行时间运算。随后提取数据量最小、最大对应的行数据,计算时间列的平均值,最后构造目标统计表格。

完整代码实现

import pandas as pd

# 转换时间列为timedelta类型,支持时间运算
time_cols = ['转换时间(convesion time)', '处理完成时间(process completed)', '耗时(time taken)']
df[time_cols] = df[time_cols].apply(pd.to_timedelta)

# 计算待转换数据量的关键统计值
data_min = df['待转换数据量(data to convert)'].min()
data_max = df['待转换数据量(data to convert)'].max()
data_avg = df['待转换数据量(data to convert)'].mean()

# 获取最小值、最大值对应的行数据
min_row = df[df['待转换数据量(data to convert)'] == data_min].iloc[0]
max_row = df[df['待转换数据量(data to convert)'] == data_max].iloc[0]
# 计算时间列的平均值
avg_times = df[time_cols].mean()

# 计算转换+处理的总时长
min_total = min_row['转换时间(convesion time)'] + min_row['处理完成时间(process completed)']
max_total = max_row['转换时间(convesion time)'] + max_row['处理完成时间(process completed)']
avg_total = avg_times['转换时间(convesion time)'] + avg_times['处理完成时间(process completed)']

# 构造结果数据集
result_data = [
    ['MIN', data_min, min_row['转换时间(convesion time)'], min_row['处理完成时间(process completed)'], min_total, min_row['耗时(time taken)']],
    ['MAX', data_max, max_row['转换时间(convesion time)'], max_row['处理完成时间(process completed)'], max_total, max_row['耗时(time taken)']],
    ['AVG', data_avg, avg_times['转换时间(convesion time)'], avg_times['处理完成时间(process completed)'], avg_total, avg_times['耗时(time taken)']]
]

result_df = pd.DataFrame(result_data, columns=[
    '统计类型(d)', '待转换数据量(Data to convert)', '转换时间(Conversion time)',
    '处理完成时间(Process completed)', '总时长(转换+处理)(total time(process+conversion))', '耗时(Time taken)'
])

# 格式化时间列为HH:MM:SS显示格式
time_display_cols = ['转换时间(Conversion time)', '处理完成时间(Process completed)', '总时长(转换+处理)(total time(process+conversion))', '耗时(Time taken)']
result_df[time_display_cols] = result_df[time_display_cols].apply(
    lambda x: x.dt.total_seconds().apply(lambda s: f"{int(s//3600):02d}:{int((s%3600)//60):02d}:{int(s%60):02d}")
)

# 统一数据量为整数格式
result_df['待转换数据量(Data to convert)'] = result_df['待转换数据量(Data to convert)'].astype(int)

# 输出Markdown格式表格
print(result_df.to_markdown(index=False))

输出结果

统计类型(d)待转换数据量(Data to convert)转换时间(Conversion time)处理完成时间(Process completed)总时长(转换+处理)(total time(process+conversion))耗时(Time taken)
MIN100000:00:3000:00:2800:00:5800:00:31
MAX5000000:01:3000:03:2800:04:5800:06:31
AVG2550000:01:0000:01:5800:02:5800:03:31

内容的提问来源于stack exchange,提问作者ditil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:25:01