Search code examples
pythonpandasdataframe

How can I make pandas dataframe column headers all lowercase?


I want to make all column headers in my pandas data frame lower case

Example

If I have:

data =

  country country isocode  year     XRAT          tcgdp
0  Canada             CAN  2001  1.54876   924909.44207
1  Canada             CAN  2002  1.56932   957299.91586
2  Canada             CAN  2003  1.40105  1016902.00180
....

I would like to change XRAT to xrat by doing something like:

data.headers.lowercase()

So that I get:

  country country isocode  year     xrat          tcgdp
0  Canada             CAN  2001  1.54876   924909.44207
1  Canada             CAN  2002  1.56932   957299.91586
2  Canada             CAN  2003  1.40105  1016902.00180
3  Canada             CAN  2004  1.30102  1096000.35500
....

I will not know the names of each column header ahead of time.


Solution

  • You can do it like this:

    data.columns = map(str.lower, data.columns)
    

    or

    data.columns = [x.lower() for x in data.columns]
    

    example:

    >>> data = pd.DataFrame({'A':range(3), 'B':range(3,0,-1), 'C':list('abc')})
    >>> data
       A  B  C
    0  0  3  a
    1  1  2  b
    2  2  1  c
    >>> data.columns = map(str.lower, data.columns)
    >>> data
       a  b  c
    0  0  3  a
    1  1  2  b
    2  2  1  c