26

csv ファイルと日時の解析に関連する簡単な質問があります。

次のような csv ファイルがあります。

YYYYMMDD, HH,    X
20110101,  1,   10
20110101,  2,   20
20110101,  3,   30

pandas (read_csv) を使用して読み取り、datetime によってインデックス付けされたデータフレームに入れたいと思います。これまでのところ、次の実装を試みました。

import pandas as pnd
pnd.read_csv("..\\file.csv",  parse_dates = True, index_col = [0,1])

私が得る結果は次のとおりです。

                         X
YYYYMMDD    HH            
2011-01-01 2012-07-01   10
           2012-07-02   20
           2012-07-03   30

ご覧のとおり、HH を別の日付に変換する際の parse_dates です。

このようなものにするために、列「YYYYMMDD」と列「HH」を適切に組み合わせる簡単で効率的な方法はありますか? :

                      X
Datetime              
2011-01-01 01:00:00  10
2011-01-01 02:00:00  20
2011-01-01 03:00:00  30

助けてくれてありがとう。

4

2 に答える 2

32

リストを に渡す場合、リストindex_col内の列から階層インデックスを作成することを意味します。

さらに、parse_datesキーワードは True またはリスト/辞書のいずれかに設定できます。True の場合、個々の列を日付として解析しようとします。それ以外の場合は、列を組み合わせて単一の日付列を解析します。

要約すると、やりたいことは次のとおりです。

from datetime import datetime
import pandas as pd
parse = lambda x: datetime.strptime(x, '%Y%m%d %H')
pd.read_csv("..\\file.csv",  parse_dates = [['YYYYMMDD', 'HH']], 
            index_col = 0, 
            date_parser=parse)
于 2012-07-23T17:45:03.773 に答える