Здесь применяются два отдельных выбора для фрейма данных data
:
1) data.iloc[:,:3]
выбирает все строки и все столбцы до (но не включая) индекса столбца 3, таким образом, индексы столбца 0, 1 и 2
2) Фрейм данных data
ограничен всеми строками, где столбец three
содержит значения больше 5
Вывод этих двух выборов не зависит от упорядочения,поэтому:
data.iloc[:,:3][data.three>5] == data[data.three>5].iloc[:,:3]
вернет кадр данных, заполненный True
Обратите внимание, что здесь вы не используете двойной выбор (как вы его называете), а скорее запрашиваете конкретные строки истолбцы в вашем первом выборе, в то время как ваш второй выбор - просто фильтр, примененный к кадру данных, возвращенному вашим первым выбором.
Фактически, вы используете .iloc()
для выбора определенных местоположений индекса (или срезов) в кадре данных., в то время как .loc()
позволяет выбирать определенные местоположения на основе меток столбцов и строк.
Наконец, когда вы фильтруете какой-либо кадр данных с чем-токак data[data.three>5]
, вы можете прочитать это как «Возвращать строки в фрейме данных data
, где столбец three
этой строки имеет значение больше 5».