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

3

嗨,我看到了几个关于这个问题的问题,但是我还没有成功解决我的问题。

我有一个单列时间格式为:

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'

有没有想法如何将这两个值分成两列?
谢谢!

不使用格式字符串:posts['Date']=pd.to_datetime(posts['Time']),它能正常工作吗? - EdChum
你尝试过使用%Y-%m-%d %H:%M:%S.%f作为format吗? - shaktimaan
3个回答

7

以下方法适用于我的情况:

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]

2
这对我很有帮助。
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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接