使用pd.to_datetime将浮点类型列转换为时间

时间:2019-04-04 20:42:13

标签: python-3.x pandas

我无法将浮点型列转换为时间格式。

我有一个熊猫数据框,其中有一列有关时间(小时和分钟)的信息。 Python将其读取为浮点数,一旦我要总结数据(总和),就必须将其转换为时间格式。

为此,我使用了函数pd.to_datetime。当我运行代码时,Python显示以下消息:ValueError:时间数据'0:0'与格式'%HH:%MM'(匹配)不匹配。

之所以发生这种情况,是因为在我的数据中,我有时间以“ 00:00”和“ 0:0”的格式显示。

尝试解决此问题,我尝试获取此列每一行的长度,以便过滤不同的时间格式。但是,当我这样做时,Python显示以下消息:

TypeError:“ float”类型的对象没有len()

我该怎么办?

以下是我的代码的几行:

#the packages I'm using

import pandas as pd 
import numpy as np

#my dataframe
df_freq = pd.read_csv('freq_bim_2018_validacao.csv',
        skiprows= 3,
        delimiter = ',')

#the code I tried to run to convert my data
df_freq.CARGA_HORARIA_TOTAL_FALTAS_ALUNO2 = 
pd.to_datetime(df_freq.CARGA_HORARIA_TOTAL_FALTAS_ALUNO2, 
           format = '%HH:%MM', utc = True)

ValueError: time data '0:0' does not match format '%HH:%MM' (match)

#me, trying to get the lenght of a float column
df_freq['CH_FALTAS_lengh'] = 
df_freq['CARGA_HORARIA_TOTAL_FALTAS_ALUNO2'].apply(len)

TypeError: object of type 'float' has no len()

0 个答案:

没有答案