Pandasで取り扱える日付データのフォーマット

概要 pandasで日付データを読み込むとき、どのようなフォーマットだったら自動的に認識されるのか、それ以外のフォーマットの場合にどうした良いかを簡単に整理します。 自動認識フォーマット pandasのマニュアルを見ると、自動で認識できるファイルフォーマットは以下のとのこと。 年と日時はある程度バリエーションが許容されますが、時間に関しては(時間:分:秒)と、コロンで区切られていなければいけないようです。 動作確認 年月日のみで検証 具体的に試してみましょう。元データとして以下のデータを用意しておきます。 Dateは年月日を8桁整数で、TimeとTime2は時間を表しており、Timeはpandasが認識できないフォーマット、Time2はpandasが認識できるフォーマットです。Valueは適当な値です。 ここで、前回記事(Pandasのread_csvの全引数を解説)を参考に、parse_datesを指定して、正しく日付として認識できるかを試してみます。 どうやら正しく読み込まれていそうです。グラフを書いて確認してみましょう。横軸が年月日になっていれば成功です。 予想通り、問題ありません。 年月日+時間で検証(フォーマット合致) 次に、時間と組み合わせていきます。まずは合致している方から。 これもグラフ化してみましょう。横軸が年月日になっていれば成功です。 上の例とほとんど同じで分かりにくいですが、横軸がDate_Time2となっており、時間軸になっているので成功です。 年月日+時間で検証(フォーマット不合致) 次に、フォーマットが合致していないケース。 これも認識できていますね。確認のためグラフ化してみます。 コロンがなくても認識できるようです。 後書き 全てのケースがうまくいくという、なんとも微妙な結果になってしまいました。実はこの記事を書き始めた時は、3つ目のケース(フォーマット不合致)の時、うまく読み込めず、その対策を試行錯誤していたのですが、記事を書いている途中に、原因は秒にありえない値(96秒とか)が入っていたためだと気づき、直したところ問題なく動いたという状況だったりします^^。逆に言うと、空欄行があったり、正しくない値があるとうまくいかないということなので、うまくいかない方はこの辺りを中心にデータチェックしてみるといいかもしれません。 ...
2015年11月3日0 DownloadsDownload