【问题标题】:Pandas dataframe filter on non na value in multiple columnsPandas 数据框过滤多列中的非 na 值
【发布时间】:2021-11-07 01:12:23
【问题描述】:

我有大约 4 列,除了 ID 列之外,我还需要保留至少其中一列具有值的行

第一列是 ID 列,永远不会为空

ID column A column B column C
01 199 222
02 50
03
04 20
05

输出

ID column A column B column C
01 199 222
02 50
04 20

【问题讨论】:

  • df.dropna(thresh=2)?

标签: python pandas filter na


【解决方案1】:

您应该检查过文档:pandas.dropna

df.dropna(how='all')

【讨论】:

    【解决方案2】:
    >>> import pandas as pd
    >>> df = pd.DataFrame([['','',''],[11,'',''],['','',22],['','','']])
    >>> df
        0 1   2
    0          
    1  11      
    2        22
    3          
    >>> df.loc[[any(row) for row in df.values]]
        0 1   2
    1  11      
    2        22
    
    

    【讨论】:

      【解决方案3】:

      下次提供一个可复制的例子。

      df = pd.DataFrame({'ID' : [1,2,3,4],
                         'column A':[2,np.nan,2,np.nan],
                         'column B':[3,np.nan,np.nan,2],
                         'column C':[np.nan,np.nan,np.nan,np.nan]})
      
      df = df.dropna(axis=0, how='all', subset=list(df.columns[df.columns != 'ID']))
      
      

      axis=0:行

      how='all' :完全是nan

      subset= : 指定你想在哪一列应用它

      【讨论】:

        猜你喜欢
        • 2021-02-02
        • 2017-04-14
        • 2019-12-09
        • 2023-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-30
        相关资源
        最近更新 更多