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

Pandas DataFrame按行求和生成total_hours列结果恒为0.0的问题求助

Pandas DataFrame按行求和生成total_hours列结果恒为0.0的问题求助

我现在遇到个头疼的问题:想给Pandas DataFrame的每一行求和,生成一个total_hours列来统计每行的日志工作时长(单位是秒,后续我自己会转成HH:MM格式)。表格里有个id列,所以我特意用iloc[:,1:]避开了第一列求和,结果却完全不对——所有行的total_hours都是0.0,明明每行里有不少整数时长值啊!

说下数据情况:这些行里混合了整数、字符串(比如"No hours logged")还有列表类型的值(像[10:02, Odd number: missing entry]),我本来想用numeric_only=True参数只对数值型求和,结果还是不行。之前看到有人说转置可能有用,试了也没效果。

下面是我的代码:

import pandas as pd

def final_output(df):
    # 把daily_logs列拆成多列,然后删掉原列
    df = pd.concat([df, pd.DataFrame(list(df['daily_logs']))], axis=1).drop(columns='daily_logs')
    # 从第二列开始按行求和,生成total_hours
    df['total_hours'] = df.iloc[:,1:].sum(axis=1, numeric_only=True) # 这部分完全没按预期工作
    return df

df_results = final_output(df)
df_results

输入的DataFrame(还没加total_hours列)和输出结果如下,输出结构看起来没问题,但total_hours应该是每行所有整数的总和,结果却全是0.0:

idname2023-11-282023-11-292023-11-302023-12-012023-12-022023-12-032023-12-042023-12-05total_hours
0514alexisNo hours loggedNo hours loggedNo hours loggedNo hours loggedNo hours loggedNo hours loggedNo hours logged0.0
12414donald29160291602886028620[10:02, Odd number: missing entry]No hours loggedNo hours logged28860
23225mackenzie2850028620285602862028980No hours loggedNo hours logged28740
33434louisa253801884026040No hours logged25560No hours loggedNo hours logged24900
43864olga15600190801440013800522017820No hours logged14400
54716rick3018028800287402862028680No hours loggedNo hours logged28680
65793roberta2922029220294602928029340No hours loggedNo hours logged29040

有没有大佬能帮我看看问题出在哪?为什么求和结果全是0啊?

备注:内容来源于stack exchange,提问作者nico

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 12:54:29