Название или имя столбца индекса Pandas



Как мне получить имя столбца индекса в python pandas? Вот пример фрейма данных:



             Column 1
Index Title
Apples 1
Oranges 2
Puppies 3
Ducks 4


то, что я пытаюсь сделать, это получить / установить заголовок индекса dataframe. Вот что я попробовал:



import pandas as pd
data = {'Column 1' : [1., 2., 3., 4.],
'Index Title' : ["Apples", "Oranges", "Puppies", "Ducks"]}
df = pd.DataFrame(data)
df.index = df["Index Title"]
del df["Index Title"]
print df


кто-нибудь знает, как это сделать?

3685   6  

6 ответов:

Вы можете просто получить/установить указатель через его name свойства

In [7]: df.index.name
Out[7]: 'Index Title'

In [8]: df.index.name = 'foo'

In [9]: df.index.name
Out[9]: 'foo'

In [10]: df
Out[10]: 
         Column 1
foo              
Apples          1
Oranges         2
Puppies         3
Ducks           4

версии 0.18.0 можно использовать rename_axis:

print df
             Column 1
Index Title          
Apples            1.0
Oranges           2.0
Puppies           3.0
Ducks             4.0

новая функциональность хорошо работает в цепочках методов.

print df.rename_axis('foo')
         Column 1
foo              
Apples        1.0
Oranges       2.0
Puppies       3.0
Ducks         4.0

вы также можете переименовать имена столбцов с параметром axis:

print df
Col Name     Column 1
Index Title          
Apples            1.0
Oranges           2.0
Puppies           3.0
Ducks             4.0
print df.rename_axis('foo').rename_axis("bar", axis="columns")
bar      Column 1
foo              
Apples        1.0
Oranges       2.0
Puppies       3.0
Ducks         4.0

print df.rename_axis('foo').rename_axis("bar", axis=1)
bar      Column 1
foo              
Apples        1.0
Oranges       2.0
Puppies       3.0
Ducks         4.0

df.index.name следует сделать трюк.

Python имеет dir функция, которая позволяет запрашивать атрибуты объекта. dir(df.index) здесь пригодился.

Если вы не хотите создавать новую строку, а просто поместите ее в пустую ячейку, то используйте:

df.columns.name = 'foo'

в противном случае используйте:

df.index.name = 'foo'

использовать df.index.rename('foo', inplace=True) задать имя индекса.

Кажется, этот api доступен с панды 0.13.

df.columns.values также дайте нам имена столбцов

Comments

    Ничего не найдено.