Home > Back-end >  How to drop dataframe columns using both, a list and not from a list?
How to drop dataframe columns using both, a list and not from a list?

Time:06-26

I am trying to drop pandas column in the following way. I have a list with columns to drop. This list will be used many times in my notebook. I have 2 columns which are only referenced once

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

So basically, I want to drop all columns from list drop_cols in addition to a hard-coded "var0" column all in one swoop. This gives an error, How do I resolve?

CodePudding user response:

df = df.drop(columns=drop_cols ['var0'])

CodePudding user response:

From what I gather you have a set of columns you wish to drop from several different dataframes while at the same time adding another unique column to also be dropped a data frame. The command you have used is close but misses the point in that you can't create a concatenated list in the way you are trying to do it. This is how I would approach the problem.

Given a Dataframe of the form:

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

define a function to merge colnames

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

Then with

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

yields:

    V3
0   4
1   8
2   12
  • Related