如何用单条命令对Python DataFrame指定列执行加减运算?
简洁实现方式
你可以利用 Pandas 的广播机制和列切片,用单行命令完成批量计算:
df.loc[:, 'C':'G'] += df['A'] - df['B']
原理说明
原式 (列值 - B) + A 可以等价转换为 列值 + (A - B),利用 Pandas 的广播特性,df['A'] - df['B'] 会生成一个与行数匹配的 Series,直接和 C 到 G 的所有列做加法运算,自动对应每行的数值,无需逐列赋值。
验证结果
执行后 DataFrame 会更新为:
A B C D E F G 0 42 45 57 9 84 37 55 1 38 30 58 78 98 56 50 2 39 15 49 59 69 79 109 3 23 65 2 34 1 34 -32
比如第一行 C 列:60 - 45 + 42 = 57,和代码运算结果一致。
如果想要逻辑更直观的写法(效果完全相同),也可以分步调用方法:
df.loc[:, 'C':'G'] = df.loc[:, 'C':'G'].sub(df['B'], axis=0).add(df['A'], axis=0)
内容的提问来源于stack exchange,提问作者Aristocrat
相关产品推荐
相关产品推荐

