【问题标题】:Read_json populates with empty lists; how to remove those rowsRead_json 填充空列表;如何删除这些行
【发布时间】:2014-04-03 04:32:27
【问题描述】:

我有一个用 pd.read_json() 创建的 Pandas 数据框。当我读入它时,我得到一些只有一个空列表或 None 的单元格,我想检测某些列中带有 [], None 的行。例如:

    feat 1    feat 2    feat 3
0     []        []        5
1     6         8         3
2     None      10        NaN

我想删除第 0 行和第 2 行,因为它们有 None/NaN/empty 列表。如何使用 Pandas 做到这一点?

【问题讨论】:

    标签: json pandas


    【解决方案1】:

    你可以applymap[]NoneNaN

    注意:替换适用于 None 但不适用于 []... 这个解决方案似乎有点敏感(因此使用否定 ~)...

    In [11]: df.applymap(lambda x: x == [] or x is None)
    Out[11]:
      feat 1 feat 2 feat 3
    0   True   True  False
    1  False  False  False
    2   True  False  False
    
    In [12]: df.where(~df.applymap(lambda x: x == [] or x is None))
    Out[12]:
      feat 1 feat 2  feat 3
    0    NaN    NaN       5
    1      6      8       3
    2    NaN     10     NaN
    

    【讨论】:

    • 这似乎工作得很好,我将它与 df.dropna() 结合使用。
    • @evancchow 我在an issue 上发布了关于此问题的敏感性。很高兴它对你有用!
    猜你喜欢
    • 2015-05-10
    • 2020-06-28
    • 2021-05-10
    • 2020-01-11
    • 1970-01-01
    • 2018-12-30
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多