2014-07-17 132 views
1

嘿所以我已经看到了几个关于这个的问题,但是,我还没有成功解决我的问题。将日期时间列拆分成日期和时间Python

我的格式为一列时间:

2014年7月17日00:59:27.400189 + 00

我想这个分成两列,日期和时间。

我用

posts['Date']=pd.to_datetime(posts['Time'],format='%Y-%m-%d %H:%M:%S') 

但是,我得到一个错误

ValueError: unconverted data remains: 400189+00 

我不知道什么标记信息的最后一位。我试着添加%O,但接收到另一个错误

ValueError: 'o' is a bad directive in format '%Y-%m-%d %H:%M:%S.%o' 

我如何能在这两个值分为两列任何想法?

谢谢!

+0

是否没有格式字符串工作:'帖[”日期 '] = pd.to_datetime(帖[' 时代'])'? – EdChum

+0

你有没有试过'格式'的'%Y-%m-%d%H:%M:%S.%f'? – shaktimaan

回答

2

以下工作对我来说:

In [18]: 

import pandas as pd 
df = pd.DataFrame({'Date':['2014-07-17 00:59:27.400189+00']}) 
df.dtypes 
Out[18]: 
Date object 
dtype: object 
In [19]: 

df['Date'] = pd.to_datetime(df['Date']) 
df.dtypes 
Out[19]: 
Date datetime64[ns] 
dtype: object 
In [20]: 

df['Time'],df['Date']= df['Date'].apply(lambda x:x.time()), df['Date'].apply(lambda x:x.date()) 
df 
Out[20]: 
     Date    Time 
0 2014-07-17 00:59:27.400189 

[1 rows x 2 columns] 
0

这为我工作

import pandas as pd 

data = pd.DataFrame({'Date':['2014-07-17 00:59:27.400189+00']}) 

data['Dates'] = pd.to_datetime(data['Date'], format='%Y:%M:%D').dt.date 
data['Hours'] = pd.to_datetime(data['Date'], format='%Y:%M:%D').dt.time 

你必须有

print(data) 

Dates   Hours 
2014-07-17  00:59:27.400189+00