gpt4 book ai didi

date - Pandas - 将 HH :MM:SS. F 字符串转换为秒 - 警告:HH 有时会超过 24H

转载 作者:行者123 更新时间:2023-12-02 05:19:30 25 4
gpt4 key购买 nike

我有以下数据框:

**flashtalking_df =**

+--------------+--------------------------+------------------------+
| Placement ID | Average Interaction Time | Total Interaction Time |
+--------------+--------------------------+------------------------+
| 2041083 | 00:01:04.12182 | 24:29:27.500 |
| 2041083 | 00:00:54.75043 | 52:31:48.89108 |
+--------------+--------------------------+------------------------+

其中 00:01:04.12182 = HH:MM:SS.F

我需要将两列“平均交互时间”和“总交互时间”转换为秒。

问题是总交互时间超过 24 小时。

我发现以下代码在大多数情况下都有效。然而,当总交互时间超过 24 小时时,它给了我

ValueError:时间数据“24:29:27.500”与格式“%H:%M:%S.%f”不匹配

这是我当前正在使用的函数,是我从另一个 Stack Overflow 问题中获取的,用于计算平均交互时间和总交互时间:

flashtalking_df['time'] = flashtalking_df['Total Interaction Time'].apply(lambda x: datetime.datetime.strptime(x,'%H:%M:%S.%f'))
flashtalking_df['timedelta'] = flashtalking_df['time'] - datetime.datetime.strptime('00:00:00.00000','%H:%M:%S.%f')
flashtalking_df['Total Interaction Time'] = flashtalking_df['timedelta'].apply(lambda x: x / np.timedelta64(1, 's'))

如果有更简单的方法,请告诉我。

感谢您的帮助

最佳答案

我认为你需要先转换 to_timedelta然后到 astype :

df['Average Interaction Time'] = pd.to_timedelta(df['Average Interaction Time'])
.astype('timedelta64[s]')
.astype(int)

df['Total Interaction Time'] = pd.to_timedelta(df['Total Interaction Time'])
.astype('timedelta64[s]')
.astype(int)
.map('{:,.2f}'.format)
print (df)
Placement ID Average Interaction Time Total Interaction Time
0 2041083 64 88,167.00
1 2041083 54 189,108.00

解决方案 total_seconds ,谢谢NickilMaveli :

df['Average Interaction Time'] = pd.to_timedelta(df['Average Interaction Time'])
.dt.total_seconds()
.map('{:,.2f}'.format)
df['Total Interaction Time'] = pd.to_timedelta(df['Total Interaction Time'])
.dt.total_seconds()
.map('{:,.2f}'.format)

print (df)
Placement ID Average Interaction Time Total Interaction Time
0 2041083 64.12 88,167.50
1 2041083 54.75 189,108.89

关于date - Pandas - 将 HH :MM:SS. F 字符串转换为秒 - 警告:HH 有时会超过 24H,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40485246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com