将日期类型的日期解析为 DDMMMYYYY
Parse dates for datetype as DDMMMYYYY
目前我的数据的日期为 01JAN2017
,我如何让 pandas 将其理解为日期类型,我需要数据为日期类型以便在不同的时间范围内对其进行过滤。
我使用了下面的
data=pd.read_csv(input_path + 'data.txt',sep='|', parse_dates=['week'])
但是当我检查一周的数据类型时,它仍然显示为对象。
如果您还可以将我指向其他一些链接,那将非常有帮助,这样我就可以阅读更多相关信息
您可以使用 datetime.strptime()
将日期字符串解析为 datetime
对象:
>>> from datetime import datetime
>>> datetime.strptime("01JAN2017", "%d%b%Y")
>>> datetime.datetime(2017, 1, 1, 0, 0)
现在,要使 pandas 识别格式,您可以添加日期解析器函数:
dateparse = lambda dates: [pd.datetime.strptime(d, "%d%b%Y") for d in dates]
df = pd.read_csv(infile, parse_dates=["week"], date_parser=dateparse)
在pandas
to_datetime
方法是自然的选择
In [11]: D = {'Date': '01JAN2017'}
In [12]: df = pd.DataFrame(D, index=[0])
In [13]: df
Out[13]:
Date
0 01JAN2017
In [14]: df.dtypes
Out[14]:
Date object
dtype: object
# Datatime column is read as string
# use to_datetime to convert non-standard datetime values
In [15]: df['Date'] = pd.to_datetime(df.Date, format='%d%b%Y')
In [16]: df.dtypes
Out[16]:
Date datetime64[ns]
dtype: object
In [17]: df['Date']
Out[17]:
0 2017-01-01
Name: Date, dtype: datetime64[ns]
pd.read_csv
的文档其实是建议你在datetime格式不是标准格式的时候使用to_datetime
:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
If a column or index contains an unparseable date, the entire column or index will be returned unaltered as an object data type. For non-standard datetime parsing, use pd.to_datetime after pd.read_csv
目前我的数据的日期为 01JAN2017
,我如何让 pandas 将其理解为日期类型,我需要数据为日期类型以便在不同的时间范围内对其进行过滤。
我使用了下面的
data=pd.read_csv(input_path + 'data.txt',sep='|', parse_dates=['week'])
但是当我检查一周的数据类型时,它仍然显示为对象。
如果您还可以将我指向其他一些链接,那将非常有帮助,这样我就可以阅读更多相关信息
您可以使用 datetime.strptime()
将日期字符串解析为 datetime
对象:
>>> from datetime import datetime
>>> datetime.strptime("01JAN2017", "%d%b%Y")
>>> datetime.datetime(2017, 1, 1, 0, 0)
现在,要使 pandas 识别格式,您可以添加日期解析器函数:
dateparse = lambda dates: [pd.datetime.strptime(d, "%d%b%Y") for d in dates]
df = pd.read_csv(infile, parse_dates=["week"], date_parser=dateparse)
在pandas
to_datetime
方法是自然的选择
In [11]: D = {'Date': '01JAN2017'}
In [12]: df = pd.DataFrame(D, index=[0])
In [13]: df
Out[13]:
Date
0 01JAN2017
In [14]: df.dtypes
Out[14]:
Date object
dtype: object
# Datatime column is read as string
# use to_datetime to convert non-standard datetime values
In [15]: df['Date'] = pd.to_datetime(df.Date, format='%d%b%Y')
In [16]: df.dtypes
Out[16]:
Date datetime64[ns]
dtype: object
In [17]: df['Date']
Out[17]:
0 2017-01-01
Name: Date, dtype: datetime64[ns]
pd.read_csv
的文档其实是建议你在datetime格式不是标准格式的时候使用to_datetime
:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
If a column or index contains an unparseable date, the entire column or index will be returned unaltered as an object data type. For non-standard datetime parsing, use pd.to_datetime after pd.read_csv