我有这个玩具示例可以解决我的实际问题:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': ['car there is','car not working', 'bus there is']})
df.iloc[1] = np.nan
idx = df['A'].str.contains('car')
df['IsCar'] = 0
df.loc[idx,'IsCar'] = 1
当我尝试运行这段代码时,我收到了以下错误消息:
ValueError: cannot index with vector containing NA / NaN values
为什么我不能这样做。是否有解决方法可以让我不必用其他东西替换 NaN?
最佳答案
str.contains
( see docs ) 有一个标志 na
,您可以将其设置为 False,这将为缺失值提供填充值。只需使用
idx = df['A'].str.contains('car', na=False)
关于python - 带有 NaN 的 Pandas bool 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36841105/