pythonのpandas.datetime.strptimeで日付を表す文字列をdatetimeに変換する
例えば、文字列'2014-01-15'をdatetime型に変換するには次のようにする。
datetime.strptime('2014-01-15', '%Y-%m-%d')
分かれば全然大したことではないが、注意点が1つ。
フォーマット指定の「%Y」は大文字でなければならない。
フォーマット指定の「%m」は大文字でもエラーにはならないが、分が1分進む(理由は未調査)。
フォーマット指定の「%d」は小文字でなければならない。
datetime.strptime(変換文字列、フォーマット)=結果
- -
datetime.strptime('2014-01-15', '%Y-%m-%d')=2014-01-15 00:00:00
datetime.strptime('2014-01-15', '%y-%m-%d')={ValueError}time data '2014-01-15'does not match format '%y-%m-%d'
datetime.strptime('2014-01-15', '%Y-%M-%d')=2014-01-15 00:01:00
datetime.strptime('2014-01-15', '%Y-%m-%D')={ValueError}D is a bad directive in format '%Y-%m-%D'
次に、文字列'2014-01-15 06:10:03.123'をdatetime型に変換するには次のようにする。
datetime.strptime('2014-01-15 06:10:03.123', '%Y-%m-%d %H:%M:%S.%f')
日付の月を指定するフォーマット「%m」が小文字でなければならないのは、分を指定するフォーマットが「%M」だからなのだね。