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
Use pandas. DataFrame. drop() method to delete/remove rows with condition(s).
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With