Как выбрать несколько столбцов без устаревшего ix в пандах

В python для нарезки данных в DataFrame в пакете панды.ix уже устарел с pandas 0.20.0. Официальный сайт предлагает альтернативные решения с .loc или .iloc для гибридного выбора (http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html). .показатель может помочь извлечь несколько строк. Напротив, столбцы.get_loc, похоже, может выбрать не более одного столбца. Доступна ли альтернативная функция, которую можно использовать для извлечения нескольких столбцов гибридным способом с использованием .iloc?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
0
378
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, функция называется Index.get_indexer и возвращает позицию столбцов или индекс по списку имен.

Используйте это следующим образом:

df = pd.DataFrame({
         'a':[4,5,4,5,5,4],
         'b':[7,8,9,4,2,3],
         'c':[1,3,5,7,1,0],
         'd':[5,3,6,9,2,4],
}, index=list('ABCDEF'))
print (df)
   a  b  c  d
A  4  7  1  5
B  5  8  3  3
C  4  9  5  6
D  5  4  7  9
E  5  2  1  2
F  4  3  0  4

cols = ['a','b','c']
df1 = df.iloc[1, df.columns.get_indexer(cols)]
print (df1)
a    5
b    8
c    3
Name: B, dtype: int64

df11 = df.iloc[[1], df.columns.get_indexer(cols)]
print (df11)
   a  b  c
B  5  8  3

idx = ['A','C']
df2 = df.iloc[df.index.get_indexer(idx), 2:]
print (df2)
   c  d
A  1  5
C  5  6

Другие вопросы по теме