【问题标题】:How to drop multiple columns (using column names) from a dataframe using pandas? [duplicate]如何使用熊猫从数据框中删除多列(使用列名)? [复制]
【发布时间】:2020-09-15 21:52:56
【问题描述】:

我有一个数据框df,大约有 200 列。我想删除索引位置从 50 到 90 和 120 到 170 的列,其名称而不是索引位置。如何做到这一点。

我不能使用:

df.drop('column name', axis=1)

直接是因为要删除的列太多,我不能像上述情况那样真正键入每个列名。

我有兴趣知道如何从特定列名 column50 到另一个列名 column90column120column170 而不是使用 int 选择列

【问题讨论】:

标签: python pandas


【解决方案1】:

您可以像这样创建列列表:

idx = list(range(50,90)) + list(range(120,170))

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

【讨论】:

    【解决方案2】:

    您可以使用np.r_ 来执行此操作:

    import numpy
    idx = np.r_[50:90, 120:170]
    
    df.drop(df.columns[idx], axis=1, inplace=True)
    

    来自np.r_ 文档:

    将切片对象转换为沿第一个轴的连接。

    在您的情况下,它连接您可以在 df.drop 命令中使用的不连续的数组切片。

    【讨论】:

      【解决方案3】:
      df.drop(df.columns.to_series()["column_name_1":"column_name_2"], axis=1)
      

      通过转换为系列,您实际上可以使用范围来删除。您只需要知道列名。

      【讨论】:

      • 是否可以从column_name_4 to column_name_6column_name_1: column_name_2 中选择列
      • 可能,但我不确定语法。
      猜你喜欢
      • 2015-03-18
      • 2019-10-10
      • 2019-10-15
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 2021-09-10
      相关资源
      最近更新 更多