Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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
Python 将多格式持续时间数据转换为通用格式“%H%M%S”。格式的%M部分(分钟)不一致_Python_Pandas_Time_Duration - Fatal编程技术网

Python 将多格式持续时间数据转换为通用格式“%H%M%S”。格式的%M部分(分钟)不一致

Python 将多格式持续时间数据转换为通用格式“%H%M%S”。格式的%M部分(分钟)不一致,python,pandas,time,duration,Python,Pandas,Time,Duration,我有一个持续时间数据,它是一个具有多种格式的对象,特别是冒号之间的分钟部分。任何想法,如何转换这些数据。我尝试了一切可以想象的正则表达式,除了正确的答案:,这是我正在努力解决的主要问题。例如,下面是我试图将分钟列归零的尝试 df['temp'] = df['temp'].replace(':?:', ':0?:', regex=True) 输入: Duration 0 00:0:00 1 00:00:00 2 00:8:00 3 00:08:00 4 00:588:

我有一个持续时间数据,它是一个具有多种格式的对象,特别是冒号之间的分钟部分。任何想法,如何转换这些数据。我尝试了一切可以想象的正则表达式,除了正确的答案:,这是我正在努力解决的主要问题。例如,下面是我试图将分钟列归零的尝试

df['temp'] = df['temp'].replace(':?:', ':0?:', regex=True)
输入:

    Duration
0   00:0:00
1   00:00:00
2   00:8:00
3   00:08:00
4   00:588:00
5   09:14:00
预期输出选项1时间格式:

    Duration
0   00:00:00
1   00:00:00
2   00:08:00
3   00:08:00
4   09:48:00
5   09:14:00
我的最终目标是获得会议记录,因此另一个可接受的格式是:

预期输出选项2分钟-整数或浮点:

    Minutes
0   0
1   0
2   8
3   8
4   588
5   554
我们可以用骡子劈腿

我们可以用骡子劈腿

我们可以只做pd.to_timedelta:

输出:

0   00:00:00
1   00:00:00
2   00:08:00
3   00:08:00
4   09:48:00
5   09:14:00
Name: Duration, dtype: timedelta64[ns]
0      0.0
1      0.0
2      8.0
3      8.0
4    588.0
5    554.0
Name: Duration, dtype: float64
或选项2-分钟:

pd.to_timedelta(df.Duration).dt.total_seconds()/60
输出:

0   00:00:00
1   00:00:00
2   00:08:00
3   00:08:00
4   09:48:00
5   09:14:00
Name: Duration, dtype: timedelta64[ns]
0      0.0
1      0.0
2      8.0
3      8.0
4    588.0
5    554.0
Name: Duration, dtype: float64
我们可以只做pd.to_timedelta:

输出:

0   00:00:00
1   00:00:00
2   00:08:00
3   00:08:00
4   09:48:00
5   09:14:00
Name: Duration, dtype: timedelta64[ns]
0      0.0
1      0.0
2      8.0
3      8.0
4    588.0
5    554.0
Name: Duration, dtype: float64
或选项2-分钟:

pd.to_timedelta(df.Duration).dt.total_seconds()/60
输出:

0   00:00:00
1   00:00:00
2   00:08:00
3   00:08:00
4   09:48:00
5   09:14:00
Name: Duration, dtype: timedelta64[ns]
0      0.0
1      0.0
2      8.0
3      8.0
4    588.0
5    554.0
Name: Duration, dtype: float64

我忘了警局的事,谢谢!我忘了警局的事,谢谢!这是我之前被卡住后接下来要尝试的,但我不知道在拆分后可以用这样的列表相乘。凉的非常感谢。这是我之前被卡住后接下来要尝试的,但我不知道在拆分后可以用这样的列表相乘。凉的非常感谢。