根据缺失值的熊猫数据帧的两列计算BMI



我还处于Python职业生涯的开端,我正试图在DataFrame中添加一个具有BMI的列,该列是从另外两列计算得出的。然而,这还不适用于我的代码,也许有人可以帮助我!在我的数据中,我通常也没有信息;NaN";我认为这就是我的代码不起作用的原因。

df = pd.DataFrame({'gender': ['m', 'w', 'm', 'm'], 
'bodyheight': [1.80, 1.70, 1.85, 'NaN'], 
'bodyweight': [75, 59, 83, 90]}, 
columns=['gender', 'bodyheight', 'bodyweight'])
df.apply(lambda x: (x.bodyweight/(x.bodyheight**2)), axis=1)

这是因为其中有一个字符串NaN。您可以将其替换为实际的NaN值;然后使用矢量化除法(我也觉得你忘记了用高度除以100来将厘米转换为米(:

df = df.replace('NaN', np.nan)
df['BMI'] = df['bodyweight'] / df['bodyheight'].div(100).pow(2)

输出:

gender  bodyheight  bodyweight        BMI
0      m       180.0          75  23.148148
1      w       170.0          59  20.415225
2      m       185.0          83  24.251278
3      m         NaN          90        NaN

相关内容

  • 没有找到相关文章