这应该是一个非常基本的问题,但我什么都没有发现,或者可能根本就不可行.

我有一个包含A、B、C列的Python Pandas DataFrame DF,我想创建一个新的D列,像这样,df['D'] = df['A']+df['B']*df['C'],我的问题是,我必须像这样写四次"df"吗?因为它们在同一个数据框中,有没有一种简单的方法来只写一次"df"?

类似于:

df['D'] = ['A']+['B']*['C']

推荐答案

你可以用eval来做这类事情,这很不错:

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})

out = df.eval('D = A+B*C')

或原地修改:

df['D'] = df.eval('A+B*C')

输出:

   A  B  C   D
0  1  4  7  29
1  2  5  8  42
2  3  6  9  57

Python相关问答推荐

如何防止Plotly在输出到PDF时减少行中的点数?

如何根据参数推断对象的返回类型?

对于一个给定的数字,找出一个整数的最小和最大可能的和

运行Python脚本时,用作命令行参数的SON文本

pandas滚动和窗口中有效观察的最大数量

如何在python polars中停止otherate(),当使用when()表达式时?

对所有子图应用相同的轴格式

如何让这个星型模式在Python中只使用一个for循环?

实现自定义QWidgets作为QTimeEdit的弹出窗口

根据列值添加时区

从嵌套的yaml创建一个嵌套字符串,后面跟着点

Python导入某些库时非法指令(核心转储)(beautifulsoup4."" yfinance)

计算天数

合并与拼接并举

巨 Python :逆向猜谜游戏

并行编程:同步进程

如何删除重复的文字翻拍?

如果有2个或3个,则从pandas列中删除空格

在电影中向西北方向对齐""

pytest、xdist和共享生成的文件依赖项