python dataframe pandas drop column using int

 云在天涯无无边_737 发布于 2023-02-13 17:57
  • php
  • 我知道要删除列,请使用df.drop('列名',轴= 1).有没有办法使用数字索引而不是列名删除列?

    3 个回答
    • 您可以删除i索引上的列,如下所示:

      df.drop(df.columns[i], axis=1)
      

      如果您在列中有重复的名称,它可能会很奇怪,因此,为此,您可以按名称重命名要删除列的列.或者您可以像这样重新分配DataFrame:

      df = df.iloc[:, [j for j, c in enumerate(df.columns) if j != i]]
      

      2023-02-13 17:59 回答
    • 删除多个列,如下所示:

      cols = [1,2,4,5,12]
      df.drop(df.columns[cols],axis=1,inplace=True)
      

      2023-02-13 17:59 回答
    • 如果有多个列具有相同的名称,那么此处给出的解决方案将删除所有列,这可能不是人们想要的.如果尝试删除除一个实例之外的重复列,则可能是这种情况.以下示例阐明了这种情况:

      # make a df with duplicate columns 'x'
      df = pd.DataFrame({'x': range(5) , 'x':range(5), 'y':range(6, 11)}, columns = ['x', 'x', 'y']) 
      
      
      df
      Out[495]: 
         x  x   y
      0  0  0   6
      1  1  1   7
      2  2  2   8
      3  3  3   9
      4  4  4  10
      
      # attempting to drop the first column according to the solution offered so far     
      df.drop(df.columns[0], axis = 1) 
         y
      0  6
      1  7
      2  8
      3  9
      4  10
      

      如您所见,两个Xs列都被删除了.替代方案:

      column_numbers = [x for x in range(df.shape[1])]  # list of columns' integer indices
      
      column_numbers .remove(0) #removing column integer index 0
      df.iloc[:, column_numbers] #return all columns except the 0th column
      
         x  y
      0  0  6
      1  1  7
      2  2  8
      3  3  9
      4  4  10
      

      如您所见,这真正删除了第0列(第一个'x').

      2023-02-13 17:59 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有