Что обозначает тильда в pandas?
Что значит в данном случае тильда?
df = df.loc[~non_numberic_profits]
В столбец non_numberic_profits были заданы строки, которые не отвечают типу данных float. То есть, не цифры, а какие-то буквы или символы.
Что в данном случае значит тильда? Какую функцию она выполняет?
После данной сроки последовала следующая строка кода `
df.profit = df.profit.apply(pd.to_numeric)
Как я понимаю, она преобразовывает именно в тип данных float. Но что она преобразовывает? Оставшиеся значения? Не совсем понимаю, что выполняет оператор тильда в данном случае.
Ответы (1 шт):
Это операция not, которая часто применяется для инвертирования логических столбцов / значений.
Another common operation is the use of boolean vectors to filter the data. The operators are:
|for or,&for and, and~for not.
Пример:
In [475]: s = pd.Series(np.random.choice([True, False], size=5))
In [476]: s
Out[476]:
0 True
1 True
2 False
3 True
4 True
dtype: bool
In [477]: ~s
Out[477]:
0 False
1 False
2 True
3 False
4 False
dtype: bool
UPD: что делает команда df = df.loc[~non_numberic_profits]:
данная команда фильтрует фрейм таким образом что выбираются только те строки фрейма для которых в соответствующей позиции non_numberic_profits стоит значение False.
NOTE: длина non_numberic_profits должна совпадать с длиной (числом строк) df.
UPD2: что делает команда df.profit = df.profit.apply(pd.to_numeric):
это не очень эффективный способ преобразовать все значения столбца к числовому типу данных int64 или float64.
Лучше это делать так:
df["profit"] = pd.to_numeric(df["profit"], errors="coerce")