【问题标题】:Pandas: print if not NaN (column)Pandas:如果不是 NaN 则打印(列)
【发布时间】:2021-12-18 16:10:54
【问题描述】:

我有一个带有列的 excel 数据集。年龄列有许多空单元格,我被要求打印几列,但只有在可用时才打印年龄。我不想打印一堆 NaN 结果。看起来很简单,但是当我尝试使用 isnull() 时,它告诉我浮动对象没有该属性。当我尝试设置 == 'NaN' 或 ' ' 时,会出现其他错误。没有任何工作,这甚至不是家庭作业的重点。有人能指出我正确的方向吗?

这是我的打印声明:

 if  ttnc_person.Age.isnull() :
              print (index, "\t", ttnc_person['Name'], pasGender)

只是要为 if null 和 if not 做一个案例,因为我是一个菜鸟,所以如果我能得到第一个 if 工作,就会有一个 notnull 的 else 语句。 这是我们对 pandas 的第一次介绍,所以假设我什么都不知道。

【问题讨论】:

  • 你应该可以只做ttnc_person.loc[ttnc_person['Age'].notnull(), 'Name'] 我不知道pasGender 是什么但是将它添加到打印语句应该是微不足道的

标签: pandas nan


【解决方案1】:

使用方法DataFrame.notna()

ttnc_person[ ttnc_person['Age'].notna() ] 

给出 Age 不是 NaN 的所有列。

ttnc_person.Age.notna()

仅给出 Age 列的值。

【讨论】:

    【解决方案2】:

    如果我正确阅读了您的错误文本,您的 ttnc_person.Age 似乎是一个浮点值。在这种情况下,您可以在使用import math 导入包后使用math.isnan(ttnc_person.Age) 检查Nan 值。见:math.isnan

    【讨论】:

      【解决方案3】:

      ttnc_person.dropna(subset=['Age'])

      【讨论】:

        猜你喜欢
        • 2022-01-26
        • 2020-11-04
        • 2021-02-20
        • 2022-11-18
        • 1970-01-01
        • 1970-01-01
        • 2016-12-31
        • 1970-01-01
        相关资源
        最近更新 更多