Замените ячейку значением, используя позиционное расположение ячейки - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть следующий пример данных:

ID Text  Value
A  yes      1
C  no       1

Я хочу заменить значение 1, связанное с идентификатором 'C' во второй строке, на 0. Традиционные способы замены, которые я нашел в Интернете (используя .replace), заменили бы оба значения 1 на 0.

Ниже мой желаемый набор данных:

ID Text  Value
A  yes      1
C  no       0

Ответы [ 3 ]

0 голосов
/ 04 сентября 2018

Использование np.where

np.where(df.ID=='C',0,df.Value)
Out[260]: array([1, 0], dtype=int64)
0 голосов
/ 04 сентября 2018

Как вы просили специально использовать позиционное местоположение. Это можно сделать двумя способами. Использование loc и iloc (числовая позиция).

import pandas as pd

df = pd.DataFrame({'ID': ['A', 'C'],
                   'Text' : ['yes', 'no'],
                   'Value' : ['1', '1']
        }
        )

# set the id as index
df.set_index('ID', inplace=True)

# use index to raplace value
df.loc['C','Value'] = 0

# reset index
df.reset_index(inplace=True)


# same operation can be done using iloc
# as an example use numeric position to revert back
df.iloc[1, 2] = 1
0 голосов
/ 04 сентября 2018

Как насчет использования .loc , который основан на индексировании на основе меток:

df.loc["C", "Value"] = 0

Или используйте .iloc , основанный на индексе:

df.loc[1, "Value"] = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...