【问题标题】:How to take all columns except one column in Data Frame Python?如何在Data Frame Python中获取除一列之外的所有列?
【发布时间】:2021-01-11 23:00:57
【问题描述】:

我的 DataFrame 包含例如 24 列,我的问题是如何获取除列号 17 之外的所有列?

data[:,:] 使用这种语法。

【问题讨论】:

  • 您可以使用drop() 函数删除第 17 列,如下所示:df.drop('17_column', 1)
  • df.iloc[:, start_col:end_col]
  • Manakin,但是使用您的代码,我只使用 start col 例如 1 和 end col 例如 16,但我想要除数字 17 之外的所有列

标签: python pandas numpy filter


【解决方案1】:

你可以这样做:

data.drop(columns=['a']) # for column name
data.drop(columns=data.columns[17]) # for column index

它返回一个您可以使用的dataframe

欲了解更多信息:pandas drop

【讨论】:

  • 谢谢,它比以前没有工作的编辑更好,我现在无法删除我的答案,但这种方法更具可读性。
  • 我更新了回复。 drop([17]) 只是删除行。
【解决方案2】:

我认为最简单的方法是:

data.loc[:, data.columns != 'col_name']

data.loc[:, ~data.columns.isin(['col_name'])]

【讨论】:

    【解决方案3】:

    您可以使用np.r_df.iloc 如下所示进行基于位置的切片索引:

    pos_of_col= 17
    df.iloc[:,np.r_[range(pos_of_col-1),range(pos_of_col,len(df.columns))]]
    

    演示,在位置 4 删除列(第 3 列,因为 python 索引从 0 开始)

    np.random.seed(0)
    df = pd.DataFrame(np.random.randint(0,20,(5,10))).add_prefix("col_")
    print(df,'\n')
    
    pos_of_col= 4
    print(df.iloc[:,np.r_[range(pos_of_col-1),range(pos_of_col,len(df.columns))]])
    
    
    
       col_0  col_1  col_2  col_3  col_4  col_5  col_6  col_7  col_8  col_9
    0     12     15      0      3      3      7      9     19     18      4
    1      6     12      1      6      7     14     17      5     13      8
    2      9     19     16     19      5     15     15      0     18      3
    3     17     19     19     19     14      7      0      1      9      0
    4     10      3     11     18      2      0      0      4      5      6 
    
       col_0  col_1  col_2  col_4  col_5  col_6  col_7  col_8  col_9
    0     12     15      0      3      7      9     19     18      4
    1      6     12      1      7     14     17      5     13      8
    2      9     19     16      5     15     15      0     18      3
    3     17     19     19     14      7      0      1      9      0
    4     10      3     11      2      0      0      4      5      6
    

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 2018-08-29
      • 2019-09-27
      • 2014-07-24
      • 2018-12-16
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多