我试图从一个数据框中得到包含任何子字符串的wordlist产品的平均价格。我可以在多个电子表格上使用以下代码-

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)

然而,其中一个电子表格在-
dframe['Product'].fillna('', inplace=True)

具有
ValueError: cannot index with vector containing NA / NaN values

我不明白为什么dframe['Product'].fillna('', inplace=True)没有处理这个问题。
急需帮助!谢谢!

最佳答案

如果第一行失败,仍然可以在参数NaN中替换条件下的str.contains s:

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

或者尝试省略na=False并重新分配:
dframe['Product'] = dframe['Product'].fillna('')

09-30 15:37