Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 熊猫-将HH:MM:SS.F字符串转换为秒-警告:HH有时超过24小时_Date_Datetime_Pandas_Seconds - Fatal编程技术网

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