【问题标题】:Pandas dataframe with nan in Index索引中带有 nan 的 Pandas 数据框
【发布时间】:2020-04-11 23:13:50
【问题描述】:

如何在 Dataframe 的索引中获取/选择 nan。我已经制作了一个具有 4 个级别的 MultiIndex 数据帧,其中第一级有一些我想要在另一个数据帧中的 nan 值

我尝试了许多获取 null 值的方法,但这些方法似乎都不适用于 index as null 这是一个例子 水果和颜色是我的索引,我想得到那些具有 nan 值的行

               Count    Price
Fruit   Color       
Apple   Red     3       $1.29
nan     Green   9       $0.99
Pear    Red     25      $2.59
nan     Green   26      $2.79
Lime    Green   99      $0.39

【问题讨论】:

    标签: python python-3.x pandas dataframe null


    【解决方案1】:

    测试Index.get_level_values 提取的MultiIndex 的第一级Index.isna 并通过boolean indexing 过滤:

    df2 = df[df.index.get_level_values(0).isna()]
    print (df2)
                 Count  Price
    Fruit Color              
    NaN   Green      9  $0.99
          Green     26  $2.79
    

    或获取MultiIndex.codes 并通过-1 进行比较:

    df2 = df[df.index.codes[0] == -1]
    print (df2)
                 Count  Price
    Fruit Color              
    NaN   Green      9  $0.99
          Green     26  $2.79
    

    【讨论】:

    • @rajsx - 好的,那么print (df.index.get_level_values(0).unique().tolist()) 是什么?
    • 我试过 nan,nat,none 以及这些都不起作用,我实际上找不到解决方案,我可以看到具有 nan 值的数据框,但无法选择并将它们提取到另一个数据框
    • print (df4.index.get_level_values(0).unique().tolist()) ['AMERICA', 'Africa', 'China', 'Europe', 'Far East', 'India', 'ME', 'MED', 'Russia', 'SEA', 'South America', nan]
    • @rajsx - 你可以测试df2 = df[df.index.get_level_values(0).isna()] 吗?
    • 请将此添加到答案中,以便我将其标记为答案
    猜你喜欢
    • 2016-02-11
    • 2020-11-10
    • 1970-01-01
    • 2012-12-10
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2016-07-22
    相关资源
    最近更新 更多