Как извлечь элементы серии Pandas, используя индекс списка - PullRequest
0 голосов
/ 20 октября 2019

Я знаю, чтобы выбрать элементы из серии Pandas, используя список индексов, например так:

yields = pd.Series([26.6,23.7,28.5,14.2,17.9,24.3,29.9,11.4,25.3,16.5,21.1])
print(yields.iloc[[1,3,5]])

Мой вопрос: как выбрать элементы, которых нет в списке индексов? То есть, как я могу использовать этот список из 3 индексов, чтобы выбрать другие 8 элементов в серии? В других контекстах я видел слово «маскировка», используемое для описания того, что я хочу сделать.

Ответы [ 2 ]

2 голосов
/ 20 октября 2019

Вы можете использовать логическое индексирование на основе отсутствия индекса в вашем списке:

yields[~yields.index.isin([1, 3, 5])]

Кстати, в вашем исходном случае yields[[1,3,5]] равно yields.iloc[[1,3,5]].

2 голосов
/ 20 октября 2019

Использование sets

  • difference
    • s.difference(t)s - t
    • новый набор с элементами в s, но не в t
print(yields.iloc[yields.index.difference([1,3,5])])


0     26.6
2     28.5
4     17.9
6     29.9
7     11.4
8     25.3
9     16.5
10    21.1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...