Самый простой из всех решений:
Использование:
filtered_df = df[(df['col1'] >= 1) & (df['col1'] <= 5)]
Другой пример. Чтобы отфильтровать фрейм данных для значений, принадлежащих Feb-2018, используйте приведенный ниже код
filtered_df = df[(df['year'] == 2018) & (df['month'] == 2)]
Существуют различные способы удалить элемент массива, где некоторые более полезны для некоторых определенных задач, чем другие.
, Если Вы хотите удалить всего один элемент массива, можно использовать \unset()
или альтернативно \array_splice()
.
Также, если Вы имеете значение и не знаете, что ключ удаляет элемент, можно использовать \array_search()
для получения ключа.
\unset()
метод Примечание, что, когда Вы будете использовать \unset()
, ключи массива не изменятся/повторно индексируют. Если Вы хотите повторно индексировать ключи, можно использовать \array_values()
после \unset()
, который преобразует все ключи к числовым перечислимым ключам, запускающимся от 0.
Код
<?php
$array = [0 => "a", 1 => "b", 2 => "c"];
\unset($array[1]);
//↑ Key which you want to delete
?>
Вывод
[
[0] => a
[2] => c
]
\array_splice()
метод , Если Вы используете \array_splice()
, ключи будут автоматически повторно индексированы, но ассоциативные ключи не изменятся в противоположность [1 117], который преобразует все ключи к числовым ключам.
Также \array_splice()
потребности смещение, не ключ! как второй параметр.
Код
<?php
$array = [0 => "a", 1 => "b", 2 => "c"];
\array_splice($array, 1, 1);
//↑ Offset which you want to delete
?>
Вывод
[
[0] => a
[1] => c
]
array_splice()
то же как [1 120] берет массив ссылкой, и это означает, что Вы не хотите присваивать возвращаемые значения тех функций назад к массиву.
, Если Вы хотите удалить несколько элементов массива и не хотите звонить \unset()
, или \array_splice()
многократно можно использовать функции \array_diff()
или \array_diff_key()
в зависимости от того, если Вы знаете значения или ключи элементов, которые Вы хотите удалить.
\array_diff()
метод , Если Вы знаете значения элементов массива, которые Вы хотите удалить, затем можно использовать \array_diff()
. Как прежде с [1 127] это не изменится/повторно индексирует ключи массива.
Код
<?php
$array = [0 => "a", 1 => "b", 2 => "c"];
$array = \array_diff($array, ["a", "c"]);
//└────────┘→ Array values which you want to delete
?>
Вывод
[
[1] => b
]
\array_diff_key()
метод , Если Вы знаете ключи элементов, которые Вы хотите удалить, затем Вы хотите использовать \array_diff_key()
. Здесь необходимо удостовериться, что Вы передаете ключи как ключи во втором параметре и не как значения. Иначе необходимо отразить массив с [1 142] \array_flip()
. И также здесь ключи не изменятся/повторно индексируют.
Код
<?php
$array = [0 => "a", 1 => "b", 2 => "c"];
$array = \array_diff_key($array, [0 => "xy", "2" => "xy"]);
//↑ ↑ Array keys which you want to delete
?>
Вывод
[
[1] => b
]
Также, если Вы хотите использовать \unset()
или \array_splice()
для удаления нескольких элементов с тем же значением, можно использовать \array_keys()
, чтобы получить все ключи для определенного значения и затем удалить все элементы.
Нужно отметить, что unset()
сохранит индексы нетронутыми, который является тем, что Вы ожидали бы при использовании индексов строк (массив как хеш-таблица), но можете быть довольно удивительными при контакте с целочисленными индексными массивами:
$array = array(0, 1, 2, 3);
unset($array[2]);
var_dump($array);
/* array(3) {
[0]=>
int(0)
[1]=>
int(1)
[3]=>
int(3)
} */
$array = array(0, 1, 2, 3);
array_splice($array, 2, 1);
var_dump($array);
/* array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(3)
} */
Так array_splice()
может использоваться, если требуется нормализовать целочисленные ключи. Другая опция использует array_values()
после unset()
:
$array = array(0, 1, 2, 3);
unset($array[2]);
$array = array_values($array);
var_dump($array);
/* array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(3)
} */
Также для именованного элемента:
unset($array["elementName"]);