Pandas – изменение конкретного ввода на основе имени строки и столбцаPython

Программы на Python
Ответить
Anonymous
 Pandas – изменение конкретного ввода на основе имени строки и столбца

Сообщение Anonymous »

Предположим, у меня есть следующий фрейм данных

Код: Выделить всё

data = [['Tom', 180], ['Adam', 174], ['Bob', 182]]
df = pd.DataFrame(data, columns=['Name', 'Height'])
Если я хочу изменить значение высоты Боба, я могу использовать .at следующим образом:

Код: Выделить всё

df.at[2, 'Height'] = 190. Однако, поскольку каждое имя уникально, я ищу способ сделать что-нибудь в духе
df.at['Bob', 'Height'] = 190. Повозившись с битом I, я решил сначала найти местоположение Боба
внутри df, а затем использовать его местоположение рядом с .at

Код: Выделить всё

location = np.where(df['Name'].values == 'Bob')[0][0]
df.at[location, 'Height'] = 190
Однако должен быть лучший способ сделать это. Обратите внимание: я не категорически против использования свойства .at. Я думаю, что мое решение разумно, но я хочу знать, есть ли что-то получше.
Поиграв с этим еще немного, я нашел это

Код: Выделить всё

df.loc[df['Name'] == 'Bob', 'Height'] = 190
Меня это вполне устраивает. Очевидно, что этот метод вызвал бы проблемы, если бы у меня были повторы. Но, к счастью, я этого не делаю.

Подробнее здесь: https://stackoverflow.com/questions/792 ... olumn-name
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»