Date 熊猫-将HH:MM:SS.F字符串转换为秒-警告:HH有时超过24小时
我有以下数据帧:Date 熊猫-将HH:MM:SS.F字符串转换为秒-警告:HH有时超过24小时,date,datetime,pandas,seconds,Date,Datetime,Pandas,Seconds,我有以下数据帧: **flashtalking\u df=** 其中00:01:04.12182=HH:MM:SS.F 我需要将这两列、平均交互时间和总交互时间转换为秒 问题是总的交互时间超过了24小时 我发现下面的代码在很大程度上是有效的。但是,当总的交互时间超过24小时时,它会给我 ValueError:时间数据“24:29:27.500”与格式“%H:%M:%S.%f”不匹配。 这是我当前正在使用的函数,我从另一个堆栈溢出问题中获取了该函数,用于平均交互时间和总交互时间: flashtal
**flashtalking\u df=**
其中00:01:04.12182=HH:MM:SS.F
我需要将这两列、平均交互时间和总交互时间转换为秒
问题是总的交互时间超过了24小时
我发现下面的代码在很大程度上是有效的。但是,当总的交互时间超过24小时时,它会给我
ValueError:时间数据“24:29:27.500”与格式“%H:%M:%S.%f”不匹配。
这是我当前正在使用的函数,我从另一个堆栈溢出问题中获取了该函数,用于平均交互时间和总交互时间:
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'))
如果有更简单的方法,请告诉我
感谢您的帮助我想您首先需要转换,然后通过以下方式转换到
秒
:
解决方案,谢谢:
嗨,耶斯雷尔!谢谢你的帮助。有没有办法再添加一个小数点细分(例如88167变为88167.50)非常感谢jezreal!旁注。当我遇到这种停车时,你能推荐我可以选择或参考的任何课程或资源,以便我自己解决它们吗?嗨,耶兹雷尔,最后一件事。即使使用.map(“{:,.2f}”格式,转换似乎也不起作用。如果我们使用00:01:04.12182,结果应该是64.12,但输出仍然有效64@jezrael,看起来OP希望获得响应的小数位数的全部精度-类似于
pd.to_timedelta(df['Total Interaction Time'])。应用(lambda td:td.total_seconds())
就足够了。@NickilMaveli-谢谢,我把它添加到答案中(稍加修改)
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'))
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
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