51

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.

smci
  • 32,567
  • 20
  • 113
  • 146
Jatin Bhola
  • 661
  • 1
  • 6
  • 11

2 Answers2

74

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')
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252
1

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
Eric Aya
  • 69,473
  • 35
  • 181
  • 253
Myles
  • 11
  • 1