2017-10-24 6 views
1

別の日付と時刻の列を持つcsvを読みました。パンダデータフレーム - 別々の列からdatetimeインデックスを作成する

data = p.read_csv(fileName,usecols=["date","time","price"]) 
data.set_index(["date","time"],inplace=True) 

これは、行間の日数や時間の差を取得する場合にはあまり役に立ちませんが、次のようにインデックスを生成しました。別の日付と時刻の列から1つの日時インデックスを生成するにはどうすればよいですか?

+0

あなたがそれらを結合する必要があります一緒に 'pd.to_datetime'を呼び出します。 –

答えて

1

私はあなたが_で区切らconcanecated列名で作成された新しい列と列およびパラメーターindex_colの両方でネストされたリストでparse_datesをパラメータが必要だと思う:

data = p.read_csv(fileName, 
        usecols=["date","time","price"], 
        parse_dates=[["date","time"]], 
        index_col=['date_time']) 

サンプル:

from pandas.compat import StringIO 

temp=u"""date,time,price 
2015-01-01,14:00:10,7 
2014-01-01,10:20:10,1""" 
#after testing replace 'StringIO(temp)' to 'filename.csv' 
df = pd.read_csv(StringIO(temp), 
       usecols=["date","time","price"], 
       parse_dates=[["date","time"]], 
       index_col=['date_time']) 

print (df) 
        price 
date_time     
2015-01-01 14:00:10  7 
2014-01-01 10:20:10  1 

print (df.index) 
DatetimeIndex(['2015-01-01 14:00:10', '2014-01-01 10:20:10'], 
       dtype='datetime64[ns]', 
       name='date_time', freq=None) 
+0

ありがとう、それは私のために働く。 parse_datesを使用すると、処理時間が大幅に増えるようです。私はそれが期待されるべきだと思うので、私は約75,000行を持っています。 – IamTheWalrus

関連する問題