You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在字典列表中新增BMI列并计算平均值?Pandas数据处理求助

问题解决:计算BMI并整理数据

问题需求

基于给定的人员数据,为每行计算BMI指数(公式:berat / tinggi),将BMI列放在berat列右侧,并计算所有行的BMI平均值。

原始数据:

data = [{'nama': 'Senpai', 'tinggi': 1.55, 'berat': 63.41},
 {'nama': 'Yui Rio', 'tinggi': 1.53, 'berat': 61.17},
 {'nama': 'Yuna Hina', 'tinggi': 1.62, 'berat': 70.98},
 {'nama': 'Koharu Hinata', 'tinggi': 1.77, 'berat': 53.45},
 {'nama': 'Mei Mio', 'tinggi': 1.58, 'berat': 67.81},
 {'nama': 'Saki Miyu', 'tinggi': 1.57, 'berat': 68.12},
 {'nama': 'Kokona Haruka', 'tinggi': 1.76, 'berat': 61.96},
 {'nama': 'Haruto Yuto', 'tinggi': 1.52, 'berat': 64.89},
 {'nama': 'Sota Yuki', 'tinggi': 1.62, 'berat': 56.73},
 {'nama': 'Hayato Haruki', 'tinggi': 1.68, 'berat': 69.07},
 {'nama': 'Ryusei Koki', 'tinggi': 1.66, 'berat': 53.02},
 {'nama': 'Sora Sosuke', 'tinggi': 1.5, 'berat': 55.89},
 {'nama': 'Riku Soma', 'tinggi': 1.62, 'berat': 78.24}]

用户尝试的错误代码:

data_array = pd.DataFrame(data)

imt = data_array['berat']/data_array['tinggi']
tes = list(imt)

join_list = data + tes
join_list_array = pd.DataFrame(join_list)
print(join_list_array)

错误原因

data是字典组成的列表,tes是数值列表,直接用+会将两个列表拼接,导致后半部分元素是单独的数值,无法正确生成包含BMI列的DataFrame。

正确实现方法

方法1:使用Pandas直接处理(推荐)

Pandas支持直接添加列,并可调整列顺序,步骤如下:

import pandas as pd

# 1. 转换为DataFrame
data_df = pd.DataFrame(data)

# 2. 计算BMI并添加为新列
data_df['BMI'] = data_df['berat'] / data_df['tinggi']

# 3. 调整列顺序,将BMI放到berat右侧
cols = ['nama', 'tinggi', 'berat', 'BMI']
data_df = data_df[cols]

# 4. 计算BMI平均值
bmi_avg = data_df['BMI'].mean()

# 输出结果
print(data_df)
print(f"\nBMI平均值: {bmi_avg:.2f}")

方法2:处理原始字典列表

如果需要先修改原始字典再转成DataFrame,可遍历每个字典添加BMI键:

import pandas as pd

# 遍历每个字典,添加BMI字段
for person in data:
    person['BMI'] = person['berat'] / person['tinggi']

# 转换为DataFrame并调整列顺序
data_df = pd.DataFrame(data)[['nama', 'tinggi', 'berat', 'BMI']]

# 计算平均值
bmi_avg = data_df['BMI'].mean()

print(data_df)
print(f"\nBMI平均值: {bmi_avg:.2f}")

两种方法都能得到结构正确的结果,且BMI列位于berat右侧,同时计算出所有行的BMI平均值。

内容的提问来源于stack exchange,提问作者lokalhangatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 20:03:23