Retrieve name of column from its Index in Pandas

Question:

I have a pandas dataframe and a numpy array of values of that dataframe.
I have the index of a specific column and I already have the row index of an important value. Now I need to get the column name of that particular value from my dataframe.

After searching through the documentations, I found out that I can do the opposite but not what I want.

Asked By: Jatin Bhola

||

Answers:

I think you need index columns names by position (python counts from 0, so for fourth column need 3):

colname = df.columns[pos]

Sample:

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B  C  D  E  F
0  1  4  7  1  5  7
1  2  5  8  3  3  4
2  3  6  9  5  6  3

pos = 3
colname = df.columns[pos]
print (colname)
D

pos = [3,5]
colname = df.columns[pos]
print (colname)
Index(['D', 'F'], dtype='object')
Answered By: jezrael

Column.name

It works wonders, especially when iterating!

Eg

Third_Column=DF.iloc[:,2] # where its name is "Third"
Third_Column=='Third'    Returns True

for i in DF:
     i.name          

# this returns the name of each column and can be used in a condition
# to apply a different rule such as a different scale when plotting a
# certain column
Answered By: Myles
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.