2017-09-16 4 views
0

現在、私のデータの日付は01JAN2017です。これを日付型として理解するにはどうすればいいですか?データをさまざまな時間枠でフィルタリングするために日付型にする必要があります。 私は以下データ型の日付をDDMMMYYYYとして解析します

data=pd.read_csv(input_path + 'data.txt',sep='|', parse_dates=['week']) 

を使用しますが、私は一週間のデータ型をチェックするとき、それはまだオブジェクトとして表示されます。あなたはまた、いくつかの他のリンクに私を導くことができる場合、私は詳細を読むことができるように

は非常に参考になる本

+1

ヒント: 'datetime.strptime'。 – tadman

答えて

2

あなたはdatetimeオブジェクトに日付文字列を解析するdatetime.strptime()を使用することができます。

>>> 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) 
+0

私は3つの日付列を持つ巨大なデータを使用するので、これは私のランタイムを増加させるでしょうか? –

0

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

が列またはインデックスが含まれている場合:to_datetime方法はpd.read_csvの文書が実際に日時書式が標準フォーマットでないときに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の後にpd.to_datetimeを使用してください。

関連する問題