Python 如何在DataFrame中分离日期和时间
我是Python的初学者。 我有数据框Python 如何在DataFrame中分离日期和时间,python,python-3.x,pandas,datetime,Python,Python 3.x,Pandas,Datetime,我是Python的初学者。 我有数据框df_all_data_0,列time_在中: 2018-01-13 13:17:29 2018-01-06 17:49:43 2018-01-18 09:44:37 2018-01-04 10:45:52 2018-01-11 12:58:31 我想将日期(例如2018-01-13)和时间(13:17:29)分开。 我尝试的是: pd.to_datetime(df_all_data_0['time_in']). date_str = df_all_dat
df_all_data_0
,列time_在
中:
2018-01-13 13:17:29
2018-01-06 17:49:43
2018-01-18 09:44:37
2018-01-04 10:45:52
2018-01-11 12:58:31
我想将日期(例如2018-01-13)和时间(13:17:29)分开。
我尝试的是:
pd.to_datetime(df_all_data_0['time_in']).
date_str = df_all_data_0.strptime('%Y-%m-%d')
但我有一个错误:
AttributeError回溯(最近一次调用)
在()
8.
9
--->10日期\u str=df\u所有\u数据\u 0.strtime(“%Y-%m-%d”)
11#打印(打印日期)
12#打印日期#2017-10-24
/anaconda/lib/python3.6/site-packages/pandas/core/generic.py in_u___getattr____(self,name)
2968如果自身信息轴中的名称:
2969返回自我[姓名]
->2970返回对象。\uuuu getattribute\uuuu(self,name)
2971
2972定义设置属性(自身、名称、值):
AttributeError:“DataFrame”对象没有属性“strTime”
如何更正?一种方法是使用
pd.Series.dt.normalize
提取时间设置为0的日期和pd.Series.dt.time
提取时间:
import pandas as pd
from io import StringIO
mystr = StringIO("""2018-01-13 13:17:29
2018-01-06 17:49:43
2018-01-18 09:44:37
2018-01-04 10:45:52
2018-01-11 12:58:31""")
df = pd.read_csv(mystr, sep='|', header=None, names=['DateTime'])
df['DateTime'] = pd.to_datetime(df['DateTime'])
df['Date'], df['Time'] = df['DateTime'].dt.normalize(), df['DateTime'].dt.time
print(df)
# DateTime Date Time
# 0 2018-01-13 13:17:29 2018-01-13 13:17:29
# 1 2018-01-06 17:49:43 2018-01-06 17:49:43
# 2 2018-01-18 09:44:37 2018-01-18 09:44:37
# 3 2018-01-04 10:45:52 2018-01-04 10:45:52
# 4 2018-01-11 12:58:31 2018-01-11 12:58:31
注意,Time
列将具有dtype
对象:
print(df.dtypes)
# DateTime datetime64[ns]
# Date datetime64[ns]
# Time object
# dtype: object
print(df.dtypes)
# DateTime datetime64[ns]
# Date datetime64[ns]
# Time object
# dtype: object