将日期时间列拆分为日期和时间Python

时间:2014-07-17 21:15:52

标签: python datetime pandas split

嘿所以我已经看到了几个关于此的问题,但是,我还没有成功解决我的问题。

我在格式中有一列时间:

2014-07-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'

关于如何将这两个值分成两列的任何想法?

谢谢!

3 个答案:

答案 0 :(得分: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]

答案 1 :(得分: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

答案 2 :(得分: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

这给了我对象类型日期和时间。预期的列应为日期格式