I know I can rename single pandas.DataFrame columns with:
drugInfo.rename(columns = {'col_1': 'col_1_new_name'}, inplace = True)
But I'd like to rename a column without knowing its name (based on its index - although I know dictionaries don't have it). I would like rename column number 1 like this:
drugInfo.rename(columns = {1: 'col_1_new_name'}, inplace = True)
But in the DataFrame.columns dict there is no '1' entry, so no renaming is done. How could I achieve this?
You can rename the column in Pandas dataframe using the df. rename( columns={“Old Column Name”:”New Column Name” } ,inplace=True) statement.
rename( columns={0 :'new column name'}, inplace=True ) . There is no need to use 'Unnamed: 0' , simply use the column number, which is 0 in this case and then supply the 'new column name' .
Method 1: Using rename() function One way of renaming the columns in a Pandas Dataframe is by using the rename() function.
Should work:
drugInfo.rename(columns = {list(drugInfo)[1]: 'col_1_new_name'}, inplace = True)
Example:
In [18]: df = pd.DataFrame({'a':randn(5), 'b':randn(5), 'c':randn(5)}) df Out[18]: a b c 0 -1.429509 -0.652116 0.515545 1 0.563148 -0.536554 -1.316155 2 1.310768 -3.041681 -0.704776 3 -1.403204 1.083727 -0.117787 4 -0.040952 0.108155 -0.092292 In [19]: df.rename(columns={list(df)[1]:'col1_new_name'}, inplace=True) df Out[19]: a col1_new_name c 0 -1.429509 -0.652116 0.515545 1 0.563148 -0.536554 -1.316155 2 1.310768 -3.041681 -0.704776 3 -1.403204 1.083727 -0.117787 4 -0.040952 0.108155 -0.092292
It is probably more readable to index into the dataframe columns attribute:
df.rename(columns={df.columns[1]:'col1_new_name'}, inplace=True)
So for you:
drugInfo.rename(columns = {drugInfo.columns[1]: 'col_1_new_name'}, inplace = True)
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