将日期时间列拆分为日期和时间 Python
嘿,我看到有很多人问过这个问题,不过我还没能成功解决我的困扰。
我有一列时间,格式是这样的:
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
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
这段话的意思是,我得到的是日期和时间的对象类型。但我希望的列应该是日期格式。
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
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]