首页 > 解决方案 > 数据框中的不同时间格式

问题描述

我提取了 YouTube 数据,提取的视频结果的长度采用不同的格式。以下是原始数据的示例:

  length
 4:26:00
 1:02:23
    9:31
    1:21

如何将我的结果转换为只有几分钟?存储在 vector 中的变量data,我尝试过:

pd.to_datetime(data['length'], format='%H:%M:%S')

但我得到了错误

ValueError:时间数据“4:26”与格式“%H:%M:%S”不匹配(匹配)

标签: pythonpandasdatetimetimedelta

解决方案


您可以使用timedelta而不是使用日期时间,因为您正在使用持续时间。前任:

df = pd.DataFrame({'length': ["4:26:00", "1:02:23", "9:31", "1:21"]})

# where the hour is missing we prepend it as zero
m = df['length'].str.len() < 6
df.loc[m, 'length'] = '00:' + df['length'][m]

df['length'] = pd.to_timedelta(df['length'])

df['length']
0   0 days 04:26:00
1   0 days 01:02:23
2   0 days 00:09:31
3   0 days 00:01:21
Name: length, dtype: timedelta64[ns]

推荐阅读