2016-04-21 14 views
1

私はデータフレームに整数の列("ADMIT_YEAR")を持っています。列の一般的な要素は、200110のようになります。ここでは、2001 =年、10 =月です。この列をdatetime型に変換する必要があります。整数型の列をPythonでdatetime型に変換するにはどうすればいいですか?

以下のclunkyメソッドを使用すると成功しました。誰かがこのコードを書くより効率的な方法を提供できますか?

Freshman['ADMIT_YEAR'] = Freshman['ADMIT_TERM'].astype(str).str.slice(0,4) 
Freshman['ADMIT_MONTH'] = Freshman['ADMIT_TERM'].astype(str).str.slice(4,6) 
Freshman['ADMIT_DATE_str'] = Freshman['ADMIT_YEAR']+'/'+Freshman['ADMIT_MONTH'] 
Freshman['ADMIT_DATE'] = pd.to_datetime(Freshman['ADMIT_DATE_str'], format="%Y/%m") 

注:私は私の日付は、整数の日ではありませんので、この質問はhereに答えていないと信じています。

+0

関連性はありますが、正確ではありません。http://stackoverflow.com/q/31973895/189134 – Andy

答えて

3

だけ(の文字列変換)に直接pd.to_datetimeを適用する列、ここでスライスした文字列を使用する必要はありません:

Freshman['ADMIT_DATE'] = pd.to_datetime(Freshman['ADMIT_DATE'].astype(str), format='%Y%m') 

桁の区切りが存在することは何の要件はありません

>>> import pandas as pd 
>>> df = pd.DataFrame({'ADMIT_DATE': [200110, 201604]}) 
>>> df['ADMIT_DATE'] = pd.to_datetime(df['ADMIT_DATE'].astype(str), format='%Y%m') 
>>> df 
    ADMIT_DATE 
0 2001-10-01 
1 2016-04-01 
>>> df.dtypes 
ADMIT_DATE datetime64[ns] 
dtype: object 
関連する問題