【发布时间】:2020-07-13 18:59:59
【问题描述】:
我正在尝试通过修改重新分配 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() 应用于多个列的正确方法吗?
【问题讨论】:
标签: python pandas dataframe assign