Панды - замена значений в определенном столбце - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь заменить все значения в определенном столбце в кадре данных, если он больше 0. Я пробовал ниже, но он заменяет все столбцы этой конкретной строки.

df.loc[(df['count'] > 0)] = 1

Может кто-нибудь помочь, спасибо..

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Вы близки, нужно указать столбец во втором параметре:

df.loc[df['count'] > 0, 'count'] = 1

Вы также можете указать несколько столбцов:

df.loc[df['count'] > 0, ['count', 'another col']] = 1

Другое решение:

df['count'] = np.where(df['count'] > 0, 1, df['count'])
#alternative    
#df['count'] = df['count'].mask(df['count'] > 0, 1)
0 голосов
/ 11 декабря 2018

попробуйте следующий пример кода;это более гибко:

import pandas as pd
import numpy as np

data = np.random.randint(low=-2, high=3, size=10)
df = pd.DataFrame(data=data, columns=['value'])
df['new_value'] = df.value.apply(lambda i : i if i < 0 else 1)
print(df)

Результат: enter image description here

0 голосов
/ 11 декабря 2018
df.loc[(df['count'] > 0), 'count'] = 1

Я рекомендую этот урок о .loc https://www.youtube.com/watch?v=xvpNA7bC8cs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...