Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.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 派生列中的对象到时间的转换_Python_Pandas_Datetime_Types - Fatal编程技术网

Python 派生列中的对象到时间的转换

Python 派生列中的对象到时间的转换,python,pandas,datetime,types,Python,Pandas,Datetime,Types,嗨,需要datetime方面的帮助 我以mm:ss-eg(23:50)的形式提取了分秒值 但在此之后,现在我需要将其转换为“%H:%M:%S”格式,但它给出的错误与dtype('o')类型中的错误相同,在下面的代码中使用,但它给出的错误,该怎么办 df_raw['Time-only'] = pd.to_datetime(df_raw['time2'], format='%H:%M:%S').dt.time 我相信您需要将值转换为时间增量,以便进行下一个向量化处理,如减法或求和: df_raw

嗨,需要datetime方面的帮助

我以mm:ss-eg(23:50)的形式提取了分秒值 但在此之后,现在我需要将其转换为“%H:%M:%S”格式,但它给出的错误与dtype('o')类型中的错误相同,在下面的代码中使用,但它给出的错误,该怎么办

df_raw['Time-only'] = pd.to_datetime(df_raw['time2'], format='%H:%M:%S').dt.time

我相信您需要将值转换为时间增量,以便进行下一个向量化处理,如减法或求和:

df_raw = pd.DataFrame({'time2':['23:50','15:23']})

df_raw['Time-only'] = pd.to_timedelta('00:' + df_raw['time2'])
print (df_raw)
   time2       Time-only
0  23:50 0 days 00:23:50
1  15:23 0 days 00:15:23

如果无法转换为时间,则无法使用矢量化操作,因为get object
python time

我相信您需要将值转换为时间增量,以便进行下一个矢量化处理,如减法或求和:

df_raw = pd.DataFrame({'time2':['23:50','15:23']})

df_raw['Time-only'] = pd.to_timedelta('00:' + df_raw['time2'])
print (df_raw)
   time2       Time-only
0  23:50 0 days 00:23:50
1  15:23 0 days 00:15:23

如果无法转换为时间,则无法使用矢量化操作,因为首先使用get object
python time

将给定字符串格式转换为datetime。例如,如果我有一个字符串“2018-04-10 12:37:51.252”

df_raw['time2'] = pd.to_datetime(df_raw['time2'], format='%Y-%m-%d %H:%M:%S.%f')
执行上述操作只会更改数据类型。您可以通过执行以下操作来验证它们

df_raw.dtypes
现在,为了回答您的问题,我相信您正在尝试将时间戳mm:ss转换为hh:mm:ss?如果没有,你能更具体一点吗

df_raw['Time-only'] = list(df_raw['time2'].map(lambda f: datetime.strftime(f, "%H:%M:%S")))

这段代码将时间戳的格式更改为12:37:51。

首先,to\u datetime用于将给定的字符串格式转换为datetime。例如,如果我有一个字符串“2018-04-10 12:37:51.252”

df_raw['time2'] = pd.to_datetime(df_raw['time2'], format='%Y-%m-%d %H:%M:%S.%f')
执行上述操作只会更改数据类型。您可以通过执行以下操作来验证它们

df_raw.dtypes
现在,为了回答您的问题,我相信您正在尝试将时间戳mm:ss转换为hh:mm:ss?如果没有,你能更具体一点吗

df_raw['Time-only'] = list(df_raw['time2'].map(lambda f: datetime.strftime(f, "%H:%M:%S")))

这段代码会将时间戳的格式更改为12:37:51。

请显示几行数据,打印
df.head(5)。到_dict()
将问题中的输出完全粘贴到您看到的位置。此外,如果可能的话,展示你的期望。保存猜测工作。请显示几行数据,打印
df.head(5)。to_dict()。此外,如果可能的话,展示你的期望。节省猜测工作。@Manakin-hmm,转换为时间增量?哦,你说得对,我以为你的电话是到约会时间,我的朋友bad@Manakin-嗯,转换成TimeDelta?哦,你是对的,我以为你的电话是到datetime,my Bad使用了该解决方案,但抛出的错误为:TypeError:datetime.date对象的描述符“strftime”不适用于“str”对象,因为“time2”的类型是str。首先,通过执行df_raw['time2']=pd.to_datetime(df_raw['time2'],format='')将time2转换为时间戳这只是我的问题,我无法将其插入DateTime。您可以粘贴您尝试转换的确切值吗?或数据帧的任何一行。使用了解决方案,但引发了以下错误:TypeError:datetime.date对象的描述符“strftime”不适用于“str”对象,因为“time2”的类型是str。首先,通过执行df_raw['time2']=pd.to_datetime(df_raw['time2',format='')将time2转换为timestamp这只是我的问题,我无法将其插入DateTime。您可以粘贴您尝试转换的确切值吗?或数据框的任何一行。