pandasのdataframeに入れた時間(str型)を変換(いわゆるdatetimeなどの時系列データの形)にしたいです。
to_datetime()を試してみましたが、うまく変換できませんでした。
コードのは私がかいたものではなく、元ネタは
https://github.com/mabuix/bitFlyer/blob/master/bitflyer_scalping_volume_bot.py
です。
python
1# coding: utf-8 2from pubnub.callbacks import SubscribeCallback 3from pubnub.enums import PNStatusCategory 4from pubnub.pnconfiguration import PNConfiguration 5from pubnub.pubnub_tornado import PubNubTornado 6from pubnub.pnconfiguration import PNReconnectionPolicy 7import datetime 8import pandas as pd 9import numpy as np 10from tornado import gen 11 12c = PNConfiguration() 13c.subscribe_key = 'sub-c-52a9ab50-291b-11e5-baaa-0619f8945a4f' 14c.reconnect_policy = PNReconnectionPolicy.LINEAR 15pubnub = PubNubTornado(c) 16 17df = pd.DataFrame(index=['datetime'], 18 columns=['id', 19 'side', 20 'price', 21 'size', 22 'exec_date', 23 'buy_child_order_acceptance_id', 24 'sell_child_order_acceptance_id']) 25 26 27@gen.coroutine 28def main(channels): 29 class Callback(SubscribeCallback): 30 def presence(self, pubnub, presence): 31 pass 32 33 def status(self, pubnub, status): 34 if status.category == PNStatusCategory.PNUnexpectedDisconnectCategory: 35 pass 36 elif status.category == PNStatusCategory.PNConnectedCategory: 37 pass 38 elif status.category == PNStatusCategory.PNReconnectedCategory: 39 pass 40 elif status.category == PNStatusCategory.PNDecryptionErrorCategory: 41 pass 42 43 def message(self, pubnub, message): 44 global df 45 db = message.message 46 pd.Series(db) 47 df = df.append(db,ignore_index=True) 48 #indexを指定する 49 df.index = df['exec_date'] 50 #いらない列を削除する。 51 del df['buy_child_order_acceptance_id'] 52 del df['sell_child_order_acceptance_id'] 53 del df['id'] 54 #時刻を変換する。 55 56 # 約定時間を日本時間に修正 57 58 print(df) 59 60 61 62 s = Callback() 63 pubnub.add_listener(s) 64 pubnub.subscribe().channels(channels).execute() 65 66 67if __name__ == '__main__': 68 channels = [ 69 'lightning_executions_FX_BTC_JPY', 70 71 ] 72 main(channels) 73 pubnub.start() 74
試したこと
pd.to_datetime(df['exec_date'])
を試みましたが、うまくいきませんでした。
変換できなければ、データを取得した時間を別途追加する方法でもかまいません。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー