目前我的數據的日期爲01JAN2017
,我如何讓熊貓理解爲日期類型,我需要數據以日期類型過濾它的各種時間範圍。 我用下面的日期類型的解析日期爲DDMMMYYYY
data=pd.read_csv(input_path + 'data.txt',sep='|', parse_dates=['week'])
但是當我檢查的數據類型爲一週仍顯示爲對象。
將是非常有益的,如果你也可以告訴我一些其他鏈接,這樣我可以閱讀了更多有關此
目前我的數據的日期爲01JAN2017
,我如何讓熊貓理解爲日期類型,我需要數據以日期類型過濾它的各種時間範圍。 我用下面的日期類型的解析日期爲DDMMMYYYY
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)
現在,爲了使大熊貓識別的格式,你可以添加日期分析器功能:
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)
這將增加我的運行時間,因爲我將使用3個日期列的龐大數據? –
在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
該文檔確實建議您使用to_datetime
當日期時間格式不是一個標準格式:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
如果某列或索引包含一個不可解析的日期,整個列或索引將作爲對象數據類型不變地返回。對於非標準的日期時間解析,請在pd.read_csv後使用pd.to_datetime
提示:'datetime.strptime'。 – tadman