Python Pandas:引用同一DataFrame多列时能否仅写一次DataFrame名?
Pandas 简化DataFrame列运算的写法
不需要重复写四次df,有几种简洁的实现方式:
使用
eval()方法:这是最直接的简化方式,Pandas的eval()可以直接解析字符串形式的列运算,自动关联当前DataFrame的列:df['D'] = df.eval('A + B * C')这里只需要写一次
df,列名直接用原始名称即可,运算逻辑和你原来的完全一致。使用
assign()方法:如果需要链式操作(比如连续添加多列),可以用assign()配合lambda表达式,用参数代替重复的df引用:df = df.assign(D=lambda x: x['A'] + x['B'] * x['C'])这里用
x指代当前DataFrame,避免了重复书写df。
你提到的df['D'] = ['A']+['B']*['C']这种写法不可行,因为单独的['A']是普通Python列表,不是Pandas的Series,无法对应DataFrame的列进行元素级运算,必须通过关联DataFrame来获取列对应的Series对象。
内容的提问来源于stack exchange,提问作者neutralname
相关产品推荐
相关产品推荐

