Способ доступа к столбцу индекса pandas [дубликат]

Решение Timmerman отлично работает при запуске кода, но если вы не хотите получать ошибки Undefined name при использовании pyflakes или аналогичного linter, вы можете использовать следующее:

try:
    import __builtin__
    input = getattr(__builtin__, 'raw_input')
except (ImportError, AttributeError):
    pass
175
задан ericmjl 21 June 2013 в 18:25
поделиться

6 ответов

Поскольку pandas 0.13 вы также можете использовать get_values :

df.index.get_values()
229
ответ дан Andy Hayden 18 August 2018 в 09:02
поделиться
  • 1
    Есть ли разница между этими значениями и значениями? (Я обновил информацию о версии, так как эта функция появляется из документов 0.13.0.) – Andy Hayden 12 December 2014 в 04:12
  • 2
    позволяет ли этот подход поддерживать порядок индексов? – Donovan Thomson 3 May 2015 в 12:09
  • 3
    @DonovanThomson да! – Andy Hayden 3 May 2015 в 17:42
  • 4
    @ Andy Hayden: Разве не разница в том, что .get_values ​​является официальным способом получения только текущих значений, в то время как .values ​​(например, в мультииндексе) может возвращать значения индекса, для которых строки или столбцы были удалены? – Ezekiel Kruglick 8 October 2015 в 22:07
  • 5
    @EzekielKruglick, так что это всегда копия? Связанный с документацией очень легкий, я не думал, что вы так обманываете (даже если они находятся в МИ, они не будут в .values) было бы здорово увидеть пример, который демонстрирует это! – Andy Hayden 8 October 2015 в 22:16
  • 6
    @AndyHayden: Я думаю, что я неправильно читал ваш комментарий. Вы правы. Значения хороши, .level дает устаревшие и get_values ​​дает вам текущие значения правильно, исключая выпавшие строки / cols. Оригинальная проблема github: github.com/pydata/pandas/issues/3686 Но я только что проверил, и она выглядит как .values ​​(конечно!), Дает актуальную информацию только в другой форме, чем я думал, это то, о чем мы говорили – Ezekiel Kruglick 8 October 2015 в 22:34
236
ответ дан Andy Hayden 6 September 2018 в 21:53
поделиться
258
ответ дан Andy Hayden 30 October 2018 в 02:57
поделиться

Если вы имеете дело с многоиндексным фреймворком данных, вам может быть интересно извлечь только столбец одного имени мультииндекса. Вы можете сделать это как

df.index.get_level_values('name_sub_index')

, и, конечно, name_sub_index должен быть элементом FrozenList df.index.names

30
ответ дан gg349 18 August 2018 в 09:02
поделиться

Я преобразовал pandas dataframe в list, а затем использовал базовый list.index(). Что-то вроде этого:

dd = list(zone[0]) #Where zone[0] is some specific column of the table
idx = dd.index(filename[i])

У вас есть значение индекса как idx.

0
ответ дан Sarvagya Gupta 18 August 2018 в 09:02
поделиться

Вы можете использовать df.index для доступа к объекту индекса, а затем получить значения в списке, используя df.index.tolist().

57
ответ дан user2285236 18 August 2018 в 09:02
поделиться
  • 1
    Он возвращает instanceMethod, а не массив списка – V Shreyas 1 June 2016 в 10:45
  • 2
    @VShreyas, как насчет df.index.values.tolist() – LancelotHolmes 10 March 2017 в 03:06
  • 3
    Это должно быть хорошо – V Shreyas 10 March 2017 в 08:57
  • 4
    df.index.tolist() не возвращает метод экземпляра. Он возвращает список индексов. Это метод, определенный по индексу панды. В то время как вызывать значения сначала - это возможность, делегирование задания на numpy не является исправлением - просто альтернативой. – user2285236 20 May 2017 в 08:08
Другие вопросы по тегам:

Похожие вопросы: