Я пытаюсь переназначить несколько столбцов в DataFrame с изменениями. Ниже приведен упрощенный пример.
import pandas as pd
d = {'col1':[1,2], 'col2':[3,4]}
df = pd.DataFrame(d)
print(df)
col1 col2
0 1 3
1 2 4
Я использую метод assign (), чтобы добавить 1 к обоим 'col1' и 'col2'. Однако в результате мы добавляем 1 только к 'col2' и копируем результат в 'col1'.
df2 = df.assign(**{c: lambda x: x[c] + 1 for c in ['col1','col2']})
print(df2)
col1 col2
0 4 4
1 5 5
Может кто-нибудь объяснить, почему это происходит, а также предложить правильный способ применения assign () на несколько столбцов?