【问题标题】:How to delete lines if few rows have met some condition using pandas如果几行使用熊猫满足某些条件,如何删除行
【发布时间】:2018-02-18 17:48:51
【问题描述】:

我有一个 CSV 文件,如下所示:

dates, names, column3, column4, column5, column6, column7 
1-3-2017,Bob,somedata,somedata,somedata,somedata,somedata
1-1-2018,Bob,-,-,-,-,-
1-1-2017,Bob,somedata,somedata,somedata,somedata,somedata

如果这些行在 column3、column4、column5、column6 和 column7 中使用 pandas,我想删除这些行。

删除不需要的信息后,文件将如下所示

dates, names, column3, column4, column5, column6, column7 
1-1-2017,Bob,somedata,somedata,somedata,somedata,somedata
1-3-2017,Bob,somedata,somedata,somedata,somedata,somedata

不明白怎么做。感谢您的帮助。

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    一种直接的方法是将- 转换为np.nan,然后使用df.dropna

    import numpy as np
    
    df = df.replace('-', np.nan).dropna(subset=['column'+str(i) for i in range(3, 8)])
    
    #       dates names   column3   column4   column5   column6   column7
    # 0  1-3-2017   Bob  somedata  somedata  somedata  somedata  somedata
    # 2  1-1-2017   Bob  somedata  somedata  somedata  somedata  somedata
    

    【讨论】:

      【解决方案2】:

      试试:

      filtered = data[(data.column3 != "-") & (data.column4 != "-") & (data.column5 != "-") & (data.column6 != "-") & (data.column7 != "-")]
      

      【讨论】:

        【解决方案3】:

        如果单元格可能只包含“-”,请尝试

        new_df = df[~(df.iloc[:, 2:] == '-').any(1)]
        

        如果它们可能包含带有其他字符的“-”,

        new_df = df[~df.iloc[:, 2:].apply(lambda x: x.str.contains('-').any(), axis = 1)]
        

        不管怎样

            dates.      names   column3     column4     column5     column6     column7
        0   1-3-2017    Bob     somedata    somedata    somedata    somedata    somedata
        2   1-1-2017    Bob     somedata    somedata    somedata    somedata    somedata
        

        【讨论】:

          猜你喜欢
          • 2018-01-09
          • 2020-05-16
          • 1970-01-01
          • 2022-12-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-10-13
          • 1970-01-01
          相关资源
          最近更新 更多