Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

df.drop if it exists

Tags:

python

pandas

Below is a function that takes a file and drops column names 'row_num", 'start_date', 'end_date.'

The problem is not every file has each of these column names, so the function returns an error.

My goal is to alter code so that it removes these columns if it exists but does not return an error if the column does not exist.

def read_df(file):     df = pd.read_csv(file, na_values=['', ' '])     # Drop useless junk and fill empty values with zero      df = df.drop(['row_num','start_date','end_date','symbol'], axis=1).fillna(0)     df=df[df!=0][:-1].dropna().append(df.iloc[-1])     return df 
like image 728
ZJAY Avatar asked Nov 30 '19 13:11

ZJAY


People also ask

How do I drop a row based on conditions?

Use pandas. DataFrame. drop() method to delete/remove rows with condition(s).

How do you drop a specific value in Python?

Method 1: Drop the specific value by using Operators We can use the column_name function along with the operator to drop the specific value.


1 Answers

Add parameter errors to DataFrame.drop:

errors : {'ignore', 'raise'}, default 'raise'

If 'ignore', suppress error and only existing labels are dropped.

df = df.drop(['row_num','start_date','end_date','symbol'], axis=1, errors='ignore') 

Sample:

df = pd.DataFrame({'row_num':[1,2], 'w':[3,4]}) df = df.drop(['row_num','start_date','end_date','symbol'], axis=1, errors='ignore') print (df)    w 0  3 1  4 
like image 146
jezrael Avatar answered Nov 07 '22 22:11

jezrael