Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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 - Fatal编程技术网

Python 将对象文本转换为时间

Python 将对象文本转换为时间,python,pandas,Python,Pandas,我有两个列First和Last(两个数据类型都是object),我想把它们转换成时间变量,我们称之为First\u time,Last\u time Current Dataframe ID First Last 1 7:30a 4p 2 10a 6p 3 7p 3:30a Desired Dataframe ID First Last 1 07:30 16:00 2 10:00 18:00 3 1

我有两个列
First
Last
(两个数据类型都是object),我想把它们转换成时间变量,我们称之为
First\u time
Last\u time

Current Dataframe

ID  First   Last
1    7:30a      4p
2    10a       6p
3    7p      3:30a

Desired Dataframe

ID  First   Last
1    07:30    16:00
2    10:00    18:00
3    19:00    03:30
我在这里找到了一个有用的站点,并尝试将以下代码
DF['hour']=pd.to_datetime(DF['Last'],format='%H').dt.hour

然而,我得到了下面的错误,我可以说它与数字旁边的文本有关。这是一个很长的错误,所以我将只发布红色的行:

TypeError: Unrecognized value type: <class 'str'>
ValueError                                Traceback (most recent call last)
ValueError: unconverted data remains: p
TypeError:无法识别的值类型:
ValueError回溯(最近一次调用上次)
ValueError:未转换的数据仍然存在:p

重新阅读您发布的链接。该表清楚地描述了可接受的格式<代码>4p不是这些格式中的任何一种。但是,
4pm
在其中一个规范中,即%p规范。从

DF['hour'] = pd.to_datetime(DF['Last']+['m'], format='%H%p').dt.hour

重新阅读你发布的链接。该表清楚地描述了可接受的格式<代码>4p不是这些格式中的任何一种。但是,
4pm
在其中一个规范中,即%p规范。从

DF['hour'] = pd.to_datetime(DF['Last']+['m'], format='%H%p').dt.hour

从那里开始工作。

nice one
pd.to_datetime(df['First']+['m'],format='%H%p').dt.time
对我来说很有效,不确定为什么我必须将
m
包含在列表中,否则我会得到一个numpy,这是一个自然错误。我的错误是——你必须将它添加为列表元素,因为这与矢量化操作支持的类型一致。我已经更新了我的答案以匹配。我得到了相同的
pd.to_datetime(df['start'].add('m'),格式='%I%p').dt.hour
啊,我的错误在这里-我忘了提到最近的一些时间是以分钟4:30显示的,因此我得到了一个错误:ValueError:time数据'4:30pm'与格式'%H%p'(匹配)不匹配。另外,由于也有AM时间,我如何添加“%H%a?”所有这些都包含在您在问题中引用的文档中。你在哪里?很好的一个
pd.to_datetime(df['First']+['m'],format='%H%p').dt.time
适合我,不确定为什么我必须将
m
包含在一个列表中,否则我得到一个numpy是一个自然错误。我的错误是——你必须将它添加为一个列表元素,因为这与矢量化操作支持的类型一致。我已经更新了我的答案以匹配。我得到了相同的
pd.to_datetime(df['start'].add('m'),格式='%I%p').dt.hour
啊,我的错误在这里-我忘了提到最近的一些时间是以分钟4:30显示的,因此我得到了一个错误:ValueError:time数据'4:30pm'与格式'%H%p'(匹配)不匹配。另外,由于也有AM时间,我如何添加“%H%a?”所有这些都包含在您在问题中引用的文档中。你在哪里受不了了?