ValueError:无法使用包含NA/NaN值的向量进行索引

Har*_*liq 6 python csv string excel

我不明白为什么我收到标题中列出的错误,我打算返回的值是30

import csv
import os
import pandas as pd
os.chdir('C:\\Users\\khalha\\Desktop\\RealExcel')
filename = 'sales.csv'

Sales = pd.read_csv('sales.csv')
iFlowStatus = Sales[Sales['Product'].str.contains('iFlow')]['Status']
print(iFlowStatus)
Run Code Online (Sandbox Code Playgroud)

MEd*_*win 19

@HarisKhaliq,我会回答这个问题,因为这会让其他人受益.错误消息表示数据框包含默认为na/NaN的空白条目.您只需添加na=Falsesynatx即可填充缺失值的值.

import csv
import os
import pandas as pd
os.chdir('C:\\Users\\khalha\\Desktop\\RealExcel')
filename = 'sales.csv'

Sales = pd.read_csv('sales.csv')
iFlowStatus = Sales[Sales['Product'].str.contains('iFlow', na=False)]['Status']
print(iFlowStatus)

.
Run Code Online (Sandbox Code Playgroud)

  • 没问题,是的,我大约一个月前就知道了,但这对任何看到此帖子的人都有好处,所以谢谢! (4认同)

kri*_*ina 9

另一个可能的问题:您可以使用不包含 NaN 的混合类型列来解决此问题。例如:

> df = pd.DataFrame({'x': ['hi', 99]})
> df.x.isna().any()
False
> df[df.x.str.contains('hi')]
...
ValueError: cannot index with vector containing NA / NaN values
Run Code Online (Sandbox Code Playgroud)

根据您想要做什么,您可以强制转换 ( df.x.astype(str).str.contains('hi')) 或删除有问题的行。