web-dev-qa-db-ja.com

Python-ValueError:NA / NaN値を含むベクトルではインデックスを作成できません

データフレームの単語リストから部分文字列を含む製品の平均価格を取得しようとしています。複数のスプレッドシートで次のコードを使用してこれを行うことができました-

_dframe['Product'].fillna('', inplace=True)
dframe['Price'].fillna(0, inplace=True)
total_count = 0
total_price = 0
for Word in ransomware_wordlist:
    mask = dframe.Product.str.contains(Word, case=False)
    total_count += mask.sum()
    total_price += dframe.loc[mask, 'Price'].sum()
average_price = total_price / total_count
print(average_price)
_

ただし、スプレッドシートの1つが行にエラーをスローします-

_dframe['Product'].fillna('', inplace=True)
_

_ValueError: cannot index with vector containing NA / NaN values
_

dframe['Product'].fillna('', inplace=True)がこの問題を処理しない理由を理解できません。

必死になって助けが必要です!ありがとう!

6
harry04

最初の行がまだ失敗する可能性がある場合は、NaNsを str.contains の状態でパラメータna=Falseに置き換えます。

mask = dframe.Product.str.contains(Word, case=False, na=False)

または、inplace=Trueを省略して割り当て直してください:

dframe['Product'] = dframe['Product'].fillna('')
6
jezrael