这是一种对数据帧中的新列使用“逐元素”计算的方法。
首先,语法
data_array['imt']
正在创建新列。
然后,在等号右侧计算'imt'列中每一行的值。这种技术称为“逐元素”计算。
import pandas as pd
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}]
# create dataframe
data_array = pd.DataFrame(data)
# create new column and add values
data_array['imt'] = data_array['berat'] / (data_array['tinggi'] ** 2)
print(data_array)
我看到你有一个for循环来打印每一行的值。您也可以使用循环来计算新值。这样地:
for row in data:
bmi = row['berat'] / (row['tinggi']**2)
row['imt'] = round(bmi, 2)
data_array = pd.DataFrame(data)