趣味で計算流砂水理

趣味で計算流砂水理 Computational Sediment Hydraulics for Fun Learning

数値計算とか河川工学とかプログラミングのことを書いています

MENU

備忘録:"24:00"を含む謎の時系列データをpandasで読み込む

スポンサーリンク

以下のcsvファイル内の"2010/01/01 24:00"のような"24:00"を含む謎のデータ(役所系に多い)をpandasで読み込む場合、通常のparse_datesオプションではdatetime型に変換できません。

tmp.csv

2010/01/01 20:00,1.42
2010/01/01 21:00,1.42
2010/01/01 22:00,1.42
2010/01/01 23:00,1.42
2010/01/01 24:00,1.42
2010/01/02 01:00,1.42
2010/01/02 02:00,1.42
2010/01/02 03:00,1.42
2010/01/02 04:00,1.42
2010/01/02 05:00,1.42

読み込むためのオプションの例です。多分もっとスマートに書けると思います。

def parser(date):
    b = date.split(' ')
    c = b[1].split(':')
    return pd.to_datetime(b[0], format='%Y/%m/%d') + pd.Timedelta(hours=int(c[0]), minutes=int(c[1])) 

df = pd.read_csv('tmp.csv',  index_col=0, parse_dates=True, header=None, date_parser=parser)