Rename unnamed column pandas dataframe

114,617

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’]

Share:
114,617

Related videos on Youtube

user2491254
Author by

user2491254

Updated on July 09, 2022

Comments

  • user2491254
    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
      EdChum about 8 years
      How 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
    user2602740 over 7 years
    You need inplace=True to change df directly. df.rename(columns={'': 'A'}, inplace=True)
  • id101112
    id101112 over 4 years
    my 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
    id101112 over 4 years
    i 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
    Yohanes Gultom over 4 years
    just 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
    Daniel Himmelstein over 2 years
    With Pandas 1.0.3, renaming columns by a dictionary with index keys doesn't seem to work. It only works for rows.
  • Daniel Himmelstein
    Daniel Himmelstein over 2 years
    In fact, I think it only works for rows because the actual DataFrame index uses sequential integers as row names.
  • bing-nagata-smirnov
    bing-nagata-smirnov about 2 years
    The best and easiest solution!
  • spioter
    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 months
    I was searching for this since days, thank you!