Python: изменение значений в DataFrame - PullRequest
0 голосов
/ 19 ноября 2018

Я новичок в питоне и пандах, и мне нужны некоторые идеи.Скажем, у меня есть следующий DataFrame:

0 1 2 3 4 5
1 5 5 5 5 5
2 5 5 5 5 5
3 5 5 5 5 5
4 5 5 5 5 5

Я хочу перебрать каждую строку и изменить значения определенных столбцов.Скажем, я хотел изменить все значения в столбцах (2,3,4) на 3.

Это то, что я пробовал, я иду по правильному пути?

for row in df.iterrows():
        for col in range(2, 4):
            df.set_value('row', 'col', 3)

РЕДАКТИРОВАТЬ: Спасибо за ответы.Простые решения очевидны, но что, если я хотел бы изменить значения на это ... например:

0  1  2  3  4  5
1  1  2  3  4  5
2  6  7  8  9  10
3  11 12 13 14 15
4  16 17 18 19 20

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

вы можете сделать это

df.iloc[:,1] = 3 #columns 2 
df.iloc[:,2] = 3 
df.iloc[:,3] = 3 
0 голосов
/ 19 ноября 2018

Если вы используете цикл при работе с фреймами данных, вы почти всегда не на правильном пути.

Для этого вы можете использовать векторизованное назначение:

df[[2, 3, 4]] = 3

Пример:

df = pd.DataFrame({1: [1, 2], 2:  [1, 2]})
print(df)
#     1  2
#  0  1  1
#  1  2  2

df[[1, 2]] = 3

print(df)
#     1  2
#  0  3  3
#  1  3  3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...