在Pandas中添加计算列

时间:2017-07-29 19:13:31

标签: python pandas

我有一个包含10列的数据框。我想添加一个新专栏' age_bmi'这应该是一个计算列乘以' age' *' bmi'。年龄是INT,bmi是FLOAT。

然后创建包含11列的新数据框。

我正在做的事情并不是很正确。我认为这是一个语法问题。有什么想法吗?

由于

(blanck)...

2 个答案:

答案 0 :(得分:5)

尝试df2['age_bmi'] = df.age * df.bmi

当你需要获取列的值时,你试图将数据帧作为一个函数调用,你可以通过键来访问它,如字典或属性,如果它是一个小写的名称,没有空格不是匹配内置的DataFrame方法。

前几天有人在评论中将此链接起来,这非常棒。我建议给它一块手表,即使你不做练习:https://www.youtube.com/watch?v=5JnMutdy6Fw

答案 1 :(得分:3)

正如Cory所指出的那样,你将数据帧称为函数,这将无法正常工作。以下是4种方法可以使用多个两列,在大多数情况下,您可以使用第一种方法。

In [299]: df['age_bmi'] = df.age * df.bmi

,或者

In [300]: df['age_bmi'] = df.eval('age*bmi')

,或者

In [301]: df['age_bmi'] = pd.eval('df.age*df.bmi')

,或者

In [302]: df['age_bmi'] = df.age.mul(df.bmi)