データフレームの単語リストから部分文字列を含む製品の平均価格を取得しようとしています。複数のスプレッドシートで次のコードを使用してこれを行うことができました-
_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)
がこの問題を処理しない理由を理解できません。
必死になって助けが必要です!ありがとう!
最初の行がまだ失敗する可能性がある場合は、NaN
sを str.contains
の状態でパラメータna=False
に置き換えます。
mask = dframe.Product.str.contains(Word, case=False, na=False)
または、inplace=True
を省略して割り当て直してください:
dframe['Product'] = dframe['Product'].fillna('')