Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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,我有以下一系列日期/时间: pd.DataFrame({"GMT":["13 Feb 20089:30 AM", "22 Apr 20098:30 AM", "14 Jul 20108:30 AM", "01 Jan 20118:30 AM"]}) GMT 13 Feb 20089:30 AM 22 Apr 20098:30 AM 14 Jul 20108:30 AM 01 Jan 20118:30 AM 我想将日期和时间部分分成

我有以下一系列日期/时间:

pd.DataFrame({"GMT":["13 Feb 20089:30 AM", "22 Apr 20098:30 AM", 
                    "14 Jul 20108:30 AM", "01 Jan 20118:30 AM"]})  


       GMT
13 Feb 20089:30 AM
22 Apr 20098:30 AM
14 Jul 20108:30 AM
01 Jan 20118:30 AM
我想将日期和时间部分分成两列,即

    Date         Time
13 Feb 2008     9:30 AM
22 Apr 2009     8:30 AM
14 Jul 2010     8:30 AM
01 Jan 2011     8:30 AM
有什么帮助吗?考虑过简单地分别拼接每个字符串,但想知道是否有更好的解决方案将它们作为datetime对象返回

使用+:

对于datetime对象,使用和 :


对于格式检查。

我认为最好在2008和9之间留一个空格,比如2008 9而不是20089,因为用20089做某些事情的逻辑变得非常复杂。这就是数据的来源,我无法选择。
df['GMT'] = pd.to_datetime(df['GMT'], format='%d %b %Y%H:%M %p')

df['Date'] = df['GMT'].dt.strftime('%d %b %Y')
df['Time'] = df['GMT'].dt.strftime('%H:%M %p')
print (df)
                  GMT         Date      Time
0 2008-02-13 09:30:00  13 Feb 2008  09:30 AM
1 2009-04-22 08:30:00  22 Apr 2009  08:30 AM
2 2010-07-14 08:30:00  14 Jul 2010  08:30 AM
3 2011-01-01 08:30:00  01 Jan 2011  08:30 AM
df['GMT'] = pd.to_datetime(df['GMT'], format='%d %b %Y%H:%M %p')
df['Date'] = df['GMT'].dt.date
df['Time'] = df['GMT'].dt.time
print (df)
                  GMT        Date      Time
0 2008-02-13 09:30:00  2008-02-13  09:30:00
1 2009-04-22 08:30:00  2009-04-22  08:30:00
2 2010-07-14 08:30:00  2010-07-14  08:30:00
3 2011-01-01 08:30:00  2011-01-01  08:30:00