python - 带有 NaN 的 Pandas bool 索引

标签 python pandas dataframe

我有这个玩具示例可以解决我的实际问题:

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/

相关文章:

python - 按条件过滤 pandas

python - 根据日期拆分数据框

python - 获取具有退出状态的单独变量中的 stderr 和 stdout

Python:检查两个 Linux 路径是否在同一个物理磁盘上

python - 计算 Pandas 中的累积发生次数和随时间绘制

python - 如何使用 for 循环对一组数据帧运行操作?

python - Word2Vector值错误: scatter requires x column to be numeric

python - Pandas Drop Very First Duplicate 仅

python - 查找两列中的最大值并用第三列中的值填充

python - 提取csv文件的多个多边形坐标