Rename unnamed column pandas dataframe
Solution 1
You can view the current dataframe using
data.head()
if that returns 'Unnamed: 0'
as the column title, you can rename it in the following way:
data.rename( columns={'Unnamed: 0':'new column name'}, inplace=True )
Solution 2
When you load the csv, use the option 'index_col' like
pd.read_csv('test.csv', index_col=0)
index_col : int or sequence or False, default None Column to use as the row labels of the DataFrame. If a sequence is given, a MultiIndex is used. If you have a malformed file with delimiters at the end of each line, you might consider index_col=False to force pandas to not use the first column as the index (row names)
http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.parsers.read_csv.html
Solution 3
The solution can be improved as data.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'
.
Solution 4
This should work:
data.rename( columns={0 :'Articles'}, inplace=True )
Solution 5
Try the below code,
df.columns = [‘A’, ‘B’, ‘C’, ‘D’]
Related videos on Youtube

user2491254
Updated on July 09, 2022Comments
-
user2491254 6 months
My csv file has no column name for the first column, and I want to rename it. Usually, I would do
data.rename(columns={'oldname':'newname'}, inplace=True)
, but there is no name in the csv file, just ''.-
EdChum about 8 yearsHow was this csv generated? If it was exported from pandas then that sometimes indicatates that the first column was the index. In that case you can tell pandas this when reading it in
pd.read_csv('file.csv', index_col=[0])
-
-
user2602740 over 7 yearsYou need inplace=True to change df directly. df.rename(columns={'': 'A'}, inplace=True)
-
id101112 over 4 yearsmy column has no name when I print the DataFrame it shows the column 0 only and i used this technique its not helping me, can you please suggest any other method to replace the name
-
id101112 over 4 yearsi tried to use the inplace = True, and it returned the blank dataframe, not sure what's going on, is there any other solution??
-
Yohanes Gultom over 4 yearsjust incase someone needed this: in pandas 0.23.4, I need to use
.rename(columns={'Unnamed: 0': 'id'})
to rename the first unnamed column -
Daniel Himmelstein over 2 yearsWith Pandas 1.0.3, renaming columns by a dictionary with index keys doesn't seem to work. It only works for rows.
-
Daniel Himmelstein over 2 yearsIn fact, I think it only works for rows because the actual DataFrame index uses sequential integers as row names.
-
bing-nagata-smirnov about 2 yearsThe best and easiest solution!
-
spioter almost 2 years+1 bc I searched for a way to do this to no avail - really handy when all you want to do is copy/paste over to excel. come on python, everything should have a name by default!
-
Carlo 9 monthsI was searching for this since days, thank you!