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

如何将for循环转换pandas DataFrame列的结果生成新数据表

解决方法

你只需要把循环输出的结果赋值到新列即可,同时额外加一步格式转换,就能得到你要的HH:MM:SS格式,两种实现方式如下:

方式1:用apply批量处理(更简洁,不需要写循环)

import pandas as pd

# 定义待处理的原始列、对应新列名
raw_cols = ["x_in_mins", "y_in_mins", "z_in_mins"]
new_cols = ["x_in_hrs", "y_in_hrs", "z_in_hrs"]

# 批量转换为目标格式并赋值
df[new_cols] = df[raw_cols].apply(
    lambda col: pd.to_timedelta(col, unit="min").astype(str).str.split().str[-1]
)

# 提取所需列生成最终DataFrame
res_df = df[["teams"] + new_cols]

方式2:沿用你原有for循环逻辑修改

raw_cols = ["x_in_mins", "y_in_mins", "z_in_mins"]
# 先复制teams列为新DataFrame的基础
res_df = df[["teams"]].copy()

for col in raw_cols:
    new_col = col.replace("_in_mins", "_in_hrs")
    # 转换后直接赋值到新DataFrame的对应列
    res_df[new_col] = pd.to_timedelta(df[col], unit="min").astype(str).str.split().str[-1]

补充说明:pd.to_timedelta转换后默认是timedelta类型,转成字符串后如果时长超过1天会自带X days 前缀,用str.split().str[-1]可以统一截取最后一段HH:MM:SS格式的内容,和你需要的输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:45:00