###前提・実現したいこと
●while文中で、pandasの処理を複数行っているのですが、フリーズしてしまいます。何が原因でしょうか?
●環境はubuntu 16.04、conda 4.2.13、jupyter notebookです。python3で記述しています。
●まず最初に、pandas-datareaderにてFREDのUSD/JPYデータを取得して、成形加工したものをfx2(変数)に格納しています。
fx2
-
DEXJPUS
DATE
2016-01-01 NaN
2016-01-04 119.30
2016-01-05 118.95
2016-01-06 118.54
2016-01-07 118.00
###発生している問題・エラーメッセージ
●コードを実行すると、
Kernel Restarting
The kernel appears to have died. It will restart automatically.
というポップアップが表示されます。
###該当のソースコード
lang
1import pandas as pd 2import pandas.tseries.offsets as offsets 3 4a='2016-01-02' 5fx3=fx2[a:a] 6 7fx4=fx3 8day_count=1 9count=len(fx4) 10while count < 1: 11 b=pd.to_datetime(a)#aの値をdatetime64型に変更 12 c=b - offsets.Day(day_count)#2016-01-02からday_count分引く 13 d="{0:%Y-%m-%d}".format(c)#datetime64型のcを文字列型に戻す 14 fx4=fx2[d:d]#fx2をdでスライスして、fx4に保存 15 day_count += 1
###試したこと
●while文中の処理を抜き出し、個別に動かしたが、問題は起こらない。
lang
1#while文一周目と仮定して 2import pandas as pd 3import pandas.tseries.offsets as offsets 4 5a='2016-01-02' 6fx3=fx2[a:a] 7 8fx4=fx3 9day_count=1 10count=len(fx4) 11 12b=pd.to_datetime(a)#aの値をdatetime64型に変更 13c=b - offsets.Day(day_count)#2016-01-02からday_count分引く 14d="{0:%Y-%m-%d}".format(c)#datetime64型のcを文字列型に戻す 15fx4=fx2[d:d] 16day_count += 1
fx4
-
DEXJPUS
DATE
2016-01-01 NaN
lang
1#while文2周目と仮定して(while文の条件count < 1はfalseとなり、while文には入らず、終了するはず。fx4とday_countの値が変わっている) 2 3import pandas as pd 4import pandas.tseries.offsets as offsets 5 6a='2016-01-02' 7fx3=fx2[a:a] 8 9fx4=fx2[d:d] 10day_count=2 11count=len(fx4) 12 13#while文にてこのコードは実行されないはず 14b=pd.to_datetime(a)#aの値をdatetime64型に変更 15c=b - offsets.Day(day_count)#2016-01-02からday_count分引く 16d="{0:%Y-%m-%d}".format(c)#datetime64型のcを文字列型に戻す 17fx4=fx2[d:d] 18day_count += 1
fx4
-
DEXJPUS
DATE
2016-01-01 NaN
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/12 12:32