Выполните простую операцию с одним столбцом в фрейме данных Panda без использования .apply - PullRequest
0 голосов
/ 25 августа 2018

У меня есть датафрейм панды df.Я хотел бы преобразовать значения одного из столбцов col_X так, чтобы;

if col_X_value < 0:
    col_X_value = 0

Я мог это сделать, если я напишу отдельную функцию python, а затем использую функцию apply.

Эта ссылка описывает, как это можно сделать с помощью .apply.http://jonathansoma.com/lede/foundations/classes/pandas%20columns%20and%20functions/apply-a-function-to-every-row-in-a-pandas-dataframe/

Однако я не хочу писать функцию python для такой простой операции.Как я могу сделать это без написания отдельной функции Python и использования apply?

Я использую Python v3.6

Ответы [ 3 ]

0 голосов
/ 25 августа 2018

Используйте версию для панд where

df.col_X_value.where(df.col_X_value > 0, 0)

Это заполнит возврат 0, если значение меньше 0, и значение, если нет

0 голосов
/ 25 августа 2018

Использование clip

df = df.clip(lower=0)
0 голосов
/ 25 августа 2018

Вы можете использовать .loc, чтобы нарезать DataFrame и установить порции соответственно. Сначала создайте логическую серию, в которой df['col_X_value'] < 0 и где True, установите 'col_X_value' в 0

df.loc[df['col_X_value'] < 0, 'col_X_value'] = 0

И в этом случае вы действительно можете использовать одну из функций панд .clip_lower для достижения того, что вы хотите.

df['col_X_value'] = df.col_X_value.clip_lower(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...