2017-06-19 17 views
2

サンプルコードを作成しました。パンダ - AttributeError: '_iLocIndexer'オブジェクトに 'セクタ'属性がありません

predictorgroups=predictor.groupby("sector") 
targetco=target.iloc[1] 
group=predictorgroups.get_group(targetco.sector).astype(object) 
pdf=(group).sort('size',ascending=False)[:10].astype(object) 

正常に機能しました。だから私はアップグレードしてそのコードを複数回やり取りしたかったので、私はそれを次のように変更しました:

for i in range(len(target.index[:10])): 
    predictorgroups=predictor.groupby("sector") 
    targetco=target.iloc(i) 
    group=predictorgroups.get_group(targetco.sector).astype(object) 
    pdf=(group).sort('size',ascending=False)[:10].astype(object) 

これは上記と全く同じコードです。しかし、私はこのエラーを取得してい秒1で:

Traceback (most recent call last): 
File "/file.py", line 64, in <module> 
group=predictorgroups.get_group(targetco.sector).astype(object) 
AttributeError: '_iLocIndexer' object has no attribute 'sector' 

私はtargetcoを印刷する場合、最初のコードでは、私が唯一の指標でパンダシリーズを得ることに気づきました。私は二番目で同じことを行う場合、私は、次のオブジェクトの種類を取得:

targetco pandas.core.indexing._iLocIndexer object at 0x105a3e438

を誰もが、なぜそれが起こっている私に説明できますか?両方が同じ場合、なぜ2番目のコードで異なる応答を得ているのですか?

答えて

4

私は[]()を変更、タイプミスがあると思います。

targetco=target.iloc(i) 

targetco=target.iloc[i] 

にあるので:

targetco = target.iloc(1) 
print (targetco) 
<pandas.core.indexing._iLocIndexer object at 0x000000000A8CD358> 

、その後pandas.core.indexing._iLocIndexerオブジェクトが列sectorを持っていないので、上げますエラー:

print (targetco.sector) 
AttributeError: '_iLocIndexer' object has no attribute 'sector' 
関連する問題