You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas中创建新DataFrame的同时新增自定义计算列

解决方案
  • 方法1:使用pandas内置的assign()方法(推荐,不会修改原始DataFrame)
    assign()方法会返回添加新列后的新DataFrame,不会改动原始数据,完美匹配你创建新对象的需求,列名带空格的场景可以用字典解包的方式传参:
import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
# 一行完成创建新DataFrame+添加计算列
new_df = pd.DataFrame(data=d).assign(**{'new column': lambda x: x['col1'] * 2 + x['col2'] / 4})
print(new_df)

如果新列名没有空格,写法可以简化为:assign(new_col = lambda x: x['col1'] * 2 + x['col2'] /4)。

  • 方法2:构造数据时直接预计算新列值
    如果不想调用assign(),也可以在构造DataFrame的入参字典时,直接把新列的值先算好:
import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
new_df = pd.DataFrame(data={**d, 'new column': [a*2 + b/4 for a, b in zip(d['col1'], d['col2'])]})
print(new_df)

注意:你原有写法里的new_df = df属于引用传递,修改new_df的列会同步修改原始的df,上面两种方法生成的都是独立的新DataFrame,不会影响原始数据。

内容的提问来源于stack exchange,提问作者Hary2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:15:00