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
Кто-нибудь знает, как это сделать?
Ответы
Ответ 1
Вы можете просто получить/установить индекс с помощью свойства 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
Ответ 2
В версии 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
Ответ 3
df.index.name
должен сделать трюк.
Python имеет функцию dir
, которая позволяет запрашивать атрибуты объекта. dir(df.index)
был полезен здесь.
Ответ 4
Если вы не хотите создавать новую строку, а просто помещаете ее в пустую ячейку, используйте:
df.columns.name = 'foo'
В противном случае используйте:
df.index.name = 'foo'
Ответ 5
df.columns.values
также дают имена столбцов
Ответ 6
Используйте df.index.rename('foo', inplace=True)
для установки имени индекса.
Кажется, этот api доступен с pandas 0.13.