代码之家  ›  专栏  ›  技术社区  ›  titutubs

如何使用列表和不从列表中删除数据帧列?

  •  0
  • titutubs  · 技术社区  · 2 年前

    我正试图以以下方式删除熊猫栏。我有一个列表,其中包含要删除的列。这个列表将在我的笔记本上使用多次。我有两列,只引用一次

    drop_cols=['var1','var2']
    df = df.drop(columns={'var0',drop_cols})
    

    因此,基本上,除了一个硬编码的“var0”列之外,我还想一次性删除列表drop_cols中的所有列。这会产生一个错误,我该如何解决?

    2 回复  |  直到 2 年前
        1
  •  0
  •   BeRT2me    2 年前
    df = df.drop(columns=drop_cols+['var0'])
    
        2
  •  0
  •   itprorh66    2 年前

    据我所知,您有一组列,希望从几个不同的数据帧中删除,同时添加另一个唯一的列,也将删除一个数据帧。您使用的命令很接近,但没有抓住要点,因为您无法以尝试的方式创建串联列表。这就是我解决问题的方法。

    给定以下形式的数据帧:

        V0  V1  V2  V3
    0   1   2   3   4
    1   5   6   7   8
    2   9   10  11  12
    

    定义一个函数来合并colname

    def mergeNames(spc_col, multi_cols):
        rslt = [spc_col]
        rslt.extend(multi+cols)
        return rslt
    

    然后用

    drop_cols = ['V1', 'V2']
    df.drop(columns=mergeNames('V0', drop_cols)
    

    产量:

        V3
    0   4
    1   8
    2   12