Подтвердить что ты не робот

В чем смысл индексирования .ix для pandas Series

Для объекта Series (позвоните ему s), pandas предлагает три типа адресации.

s.iloc [] - для адресации целых чисел;

s.loc [] - для адресной метки метки; и

s.ix [] - для гибрида целочисленного положения и адресации меток.

Объект pandas также выполняет непосредственную адресацию ix.

# play data ...
import string
idx = [i for i in string.uppercase] # A, B, C .. Z
t = pd.Series(range(26), index=idx) # 0, 1, 2 .. 25

# examples ...
t[0]              # --> 0
t['A']            # --> 0
t[['A','M']]      # --> [0, 12]
t['A':'D']        # --> [0, 1, 2, 3]
t.iloc[25]        # --> 25
t.loc['Z']        # --> 25
t.loc[['A','Z']]  # --> [0, 25]
t.ix['A':'C']     # --> [0, 1, 2]
t.ix[0:2]         # --> [0, 1]

Итак, на мой вопрос: есть ли смысл использовать метод индексирования .ix? Я пропустил что-то важное здесь?

4b9b3361

Ответ 1

При a Series, .ix эквивалентен синтаксису [] []. .ix/.loc поддерживает многоосевое индексирование, которое для серии не имеет значения (имеет только одну ось) и, следовательно, существует для совместимости.

например.

DataFrame(...).ix[row_indexer,column_indexer]
Series(...).ix[row_indexer]

.ix сам по себе является "более старым" методом, который пытается выяснить, что вам нужно, когда он представлен с меткой или позиционной (целочисленной) индексацией. Вот почему .loc/.iloc были введены в 0.11 для обеспечения выбора индексацией пользователем.