Что обозначает тильда в pandas?
📁 python
Что значит в данном случае тильда?
df = df.loc[~non_numberic_profits]В столбец non_numberic_profits были заданы строки, которые не отвечают типу данных float. То есть, не цифры, а какие-то буквы или символы.
Что в данном случае значит тильда? Какую функцию она выполняет?
После данной сроки последовала следующая строка кода `
df.profit = df.profit.apply(pd.to_numeric)Как я понимаю, она преобразовывает именно в тип данных float. Но что она преобразовывает? Оставшиеся значения? Не совсем понимаю, что выполняет оператор тильда в данном случае.
Это операция 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]: sOut[476]: 0 True1 True2 False3 True4 Truedtype: boolIn [477]: ~sOut[477]: 0 False1 False2 True3 False4 Falsedtype: boolUPD: что делает команда 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"") Войдите чтобы оставить ответ