我有一个包含10列的数据框。我想添加一个新专栏' age_bmi'这应该是一个计算列乘以' age' *' bmi'。年龄是INT,bmi是FLOAT。
然后创建包含11列的新数据框。
我正在做的事情并不是很正确。我认为这是一个语法问题。有什么想法吗?
由于
(blanck)...
答案 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)