【问题标题】:Find only rows that contains "NaN" in a specific column?仅查找特定列中包含“NaN”的行?
【发布时间】:2016-04-20 21:43:35
【问题描述】:

如何在特定列中仅找到包含“NaN”的行?

我尝试使用此特定代码合并(左连接)两个数据帧并在“matricule”列中找到包含“NaN”的 ONLY 行。

ln []: import pandas as pd
import datetime as dt
import numpy as np
from datetime import datetime
from datetime import timedelta
from sqlalchemy import create_engine

ln []: vehicule_xls = pd.read_excel("vehicule.xls")
vehicule_xls

ln []: vehicule_sql = pd.read_sql_query('select * from vehicule ', con=engine)
vehicule_sql

ln []: vehicules = pd.merge(vehicule_xls, vehicule_sql, left_on='Immat', right_on="matricule", how='left', indicator='Indicator')

ln []: vehicules[vehicules['matricule'].isnull()]

但是我在最后一个命令中得到了这个错误。

TypeError: data type not understood

【问题讨论】:

  • 知道哪一行产生错误会很有用
  • le 最后一个 "ln []: 车辆[vehicules['matricule'].isnull()]"
  • 你需要发布原始数据来重现这一点,vehicules.info() 显示了什么
  • 所有列都是非空对象。这是一个左连接(当我合并两个数据框时)。所以我在 vehicule_sql 列值中有“nan”。
  • 我只是想找出两个数据帧之间的区别。

标签: python numpy pandas jupyter jupyter-notebook


【解决方案1】:

您可以获得一个二进制向量,指示特定行在感兴趣的列中是否有nan,如下所示

fltr = vehicules['matricule'].isnull()

然后您可以提取感兴趣的子集

subset = vehicules[fltr]

【讨论】:

  • TypeError: 数据类型不理解
  • 我发布的答案的第一行或第二行是否出现该错误?
  • 这两行都不错。但是当我尝试显示子集时,我得到了错误。
  • 你能把vehicules的原版显示没有错误吗?
  • 执行此操作时,我得到“空数据框”和我的列名作为输出(但我知道我检查的列中有一些空值,因为我在执行.head 时看到了它们@
猜你喜欢
  • 1970-01-01
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
相关资源
最近更新 更多