我有一个包含10列的数据框.我想添加一个新列'age_bmi',它应该是一个计算列,乘以'age'*'bmi'.年龄是INT,bmi是FLOAT.
然后创建具有11列的新数据帧.
我正在做的事情不太对劲.我认为这是一个语法问题.有任何想法吗?
谢谢
df2['age_bmi'] = df(['age'] * ['bmi'])
print(df2)
Run Code Online (Sandbox Code Playgroud)
Zer*_*ero 17
正如 Cory 所指出的,您将数据帧作为函数调用,这不会像您预期的那样工作。这里有 4 种方法可以多列两列,在大多数情况下,您会使用第一种方法。
In [299]: df['age_bmi'] = df.age * df.bmi
Run Code Online (Sandbox Code Playgroud)
或者,
In [300]: df['age_bmi'] = df.eval('age*bmi')
Run Code Online (Sandbox Code Playgroud)
或者,
In [301]: df['age_bmi'] = pd.eval('df.age*df.bmi')
Run Code Online (Sandbox Code Playgroud)
或者,
In [302]: df['age_bmi'] = df.age.mul(df.bmi)
Run Code Online (Sandbox Code Playgroud)
试试df2['age_bmi'] = df.age * df.bmi.
当你需要获取列的值时,你试图将数据帧作为一个函数调用,你可以通过键访问它,如字典或属性,如果它是一个小写名称,没有与构建不匹配的空格-in DataFrame方法.
有人在前几天的评论中将此链接起来,这非常棒.我建议给它一块手表,即使你不做练习:https://www.youtube.com/watch?v = 5JnMutdy6Fw
| 归档时间: |
|
| 查看次数: |
12349 次 |
| 最近记录: |