Использование функции .at Panda для изменения нескольких строк - PullRequest
5 голосов
/ 08 мая 2019

Я немного запутался с использованием at.С веб-сайта:

Доступ к одному значению для пары меток строки / столбца.

Тем не менее, я все еще могу использовать его для изменения значений в нескольких строках.Например:

df = pd.DataFrame([[0, 2, 3], [0, 2, 1], [10, 20, 30]], index=[0, 1, 2], columns=['A', 'B', 'C'])

    A   B   C
0   0   2   3
1   0   2   1
2  10  20  30

idxs = df[df.B==2].index.values
df.at[idxs, 'A'] = -33

    A   B   C
0 -33   2   3
1 -33   2   1
2  10  20  30

Это фактически изменит значения в обеих первых двух строках (столбец A).Я делаю что-то неправильно?Безопасно ли использовать at для изменения нескольких строк таким образом?

1 Ответ

1 голос
/ 08 мая 2019

Технически, .at обращается к одному значению для пары меток строки / столбца и изменяет его по одному за раз.Но ваша переменная idxs является списком, поэтому она выполняется для каждого индекса в списке.Таким образом, ответ на ваш вопрос - нет, вы ничего не делаете неправильно, и да, совершенно безопасно использовать .at для изменения нескольких строк таким образом.

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