私はデータフレームstockData
を持っています。一部の例では、次のようになります。データフレーム処理のキーエラー
Name: BBG.XCSE.CARLB.S_LAST_ADJ BBG.XCSE.CARLB.S_FX .....
date
2015-09-11 0.1340 490.763
2015-09-14 0.1340 484.263
2015-09-15 0.1340 484.755
2015-09-16 0.1340 507.703
2015-09-17 0.1340 514.104 .....
各列のデータ型、DTYPEがありますのfloat64
私は宇宙のすべての名前をcontans静的データのデータフレームをループしていると私はこれを反復処理し、反復処理をスルー名前はそれぞれ毎日(この例では名前はBBG.XCSE.CARLB.Sですが、実際には何百もの名前があります)、カラム 'name_LAST_ADJ'をとり、カラム 'name_FX'を掛けます。しかし、時には(名の履歴がないため)、データが存在せず、名前の欄にはしていないので、私はキーエラーが表示さ
for i, row in staticData.iterrows():
unique_id = i
#Create new column for the current name that will take the result of the following calculation
stockData[unique_id+"_LAST_ADJ_EUR"] = np.nan
#Perform calculation - this is where I get the KeyError when there is no data in the name_ADJ_LAST column.
stockData[unique_id+"_LAST_ADJ_EUR"] = stockData[unique_id+"_FX"]*stockData[unique_id+"_LAST_ADJ"]
return stockData
:私はのようなルックスを使用しています
コードデータフレーム。私はname_LAST_ADJ_EURと呼ばれる追加の列を作成しようとしていますし、データがあるとき、それはのようになります。上記のコードでは
:データがある場合に
Name: BBG.XCSE.CARLB.S_LAST_ADJ BBG.XCSE.CARLB.S_FX BBG.XCSE.CARLB.S_LAST_ADJ_EUR
date
2015-09-11 0.1340 490.763 65.762242
2015-09-14 0.1340 484.263 64.891242
2015-09-15 0.1340 484.755 64.95717
2015-09-16 0.1340 507.703 68.032202
2015-09-17 0.1340 514.104 68.889936
とname_LAST_ADJ列内のデータは方法はありません私は、以下のものを使用して試してみました
Name: BBG.XCSE.CARLB.S_LAST_ADJ_EUR
date
2015-09-11 NaN
2015-09-14 NaN
2015-09-15 NaN
2015-09-16 NaN
2015-09-17 NaN
:
stockData[unique_id+"_LAST_ADJ_EUR"] = np.where((stockData[unique_id+"_LAST_ADJ"] == np.nan),stockData[unique_id+"_LAST_ADJ_EUR"]='NaN',stockData[unique_id+"_LAST_ADJ_EUR"] = stockData[unique_id+"_FX"] * stockData[unique_id+"_LAST_ADJ"])
、それがどのように見えるので、彼の列のためのNaN出力を生成
これは、列があってもそれを参照する列がない場合には問題なく、KeyError例外がスローされます。
ずっとあなたfor
ループで