I’m trying to make a function that adds new columns with numbering:
x = [i+1 for i in range(len(df))] def new_column (df, column): df.sort_values(by=column, ascending=False) df['new_col'] = x
But, when I call it, I get an eroor:
new_column(df, column_name)
NameError: name ‘column’ is not defined
What did I do wrong?
Advertisement
Answer
Use:
np.random.seed(2021) df = pd.DataFrame({'a':np.random.randint(1,10, size=10)}) print (df) def new_column (df, column): #assign back or use inplace=True df = df.sort_values(by=column, ascending=False) #df.sort_values(by=column, ascending=False, inplace=True) #add range df['new_col'] = range(1, len(df) + 1) #return ouput return df print (new_column(df, 'a')) a new_col 5 9 1 3 7 2 6 7 3 7 7 4 8 7 5 9 7 6 1 6 7 4 6 8 0 5 9 2 1 10