#python #python-3.x #pandas #dataframe
#python #python-3.x #pandas #dataframe
Вопрос:
В документации Pandas есть этот Boolean list with the same length as the row axis
пример, вот так:
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
... index=['cobra', 'viper', 'sidewinder'],
... columns=['max_speed', 'shield'])
>>> df
max_speed shield
cobra 1 2
viper 4 5
sidewinder 7 8
>>> df.loc[[False, False, True]]
max_speed shield
sidewinder 7 8
Может кто-нибудь, пожалуйста, объяснить, как df.loc[[False, False, True]]
работает, чтобы показать результат, пожалуйста?
Спасибо.
Комментарии:
1.
[False, False, True]
напрямую интерпретирует строку 0 = False, строку 1 = False и строку 2 = True, следовательно, возвращает 3-ю (2-ю, поскольку индексация начинается с 0) строку, на самом деле я не думаю, что вам нужноloc
здесь2. Пожалуйста, также обратитесь к документам для логической индексации
3. @anky. Спасибо, теперь я понимаю. Не могли бы вы опубликовать это в качестве ответа, чтобы я мог дать вам преимущество. Да, я просмотрел документы, в них нет объяснения этого примера.
4. zabop опубликовал аналогичный ответ. Я думаю, вы должны вознаградить их за ответ 🙂
Ответ №1:
df[[False,False,True]]
возвращает то же самое, что и df.loc[[False, False, True]]
.
df[[False,False,True]]
более интуитивно понятен и может быть интерпретирован как: не возвращайте первую и вторую (т. е. первую и вторую False
), возвращайте третью (т. Е. третья — это True
) строку.
В документации смотрите пункт маркера:
- Логический массив той же длины, что и разрезаемая ось, например [True, False, True].