Pandas读取“student.xlsx”数据,命名为“df_student”,利用学生的身高和体重,做如下操作: 1.计算每位学生的BMI 体质指数,原df_student 新增列“BMI"; BMI=体重(kg)/身高(m)2 2.判断每位学生的体形,新增列“体形”; 3.使用.iloc()方法筛选出体形“偏瘦”的学生,命名为“df_thin"; 4.使用.loc()方法筛选出体形“正常”的学生,命名为“df _normal"; 5.使用.isin()方法筛选出体形“超重”的学生,命名为“df _overweight";6.使用.query()方法筛选出体形“肥胖”的学生,命名为“df_obisty"; 7.将上述5个DataFrame(df _student、df_thin、df _normal、df_overweight和df_obisty)导入至同一张 excel中存储,文件命名为“HW_体形判断―学号―姓名.xlsx”。
时间: 2024-03-26 10:42:31 浏览: 103
好的,我会依次回答你的问题,首先是第一个问题:
```python
import pandas as pd
# 读取数据
df_student = pd.read_excel('student.xlsx')
# 计算BMI
df_student['BMI'] = df_student['体重(kg)'] / (df_student['身高(m)'] ** 2)
# 判断体形
df_student.loc[df_student['BMI'] < 18.5, '体形'] = '偏瘦'
df_student.loc[(df_student['BMI'] >= 18.5) & (df_student['BMI'] < 24), '体形'] = '正常'
df_student.loc[(df_student['BMI'] >= 24) & (df_student['BMI'] < 28), '体形'] = '超重'
df_student.loc[df_student['BMI'] >= 28, '体形'] = '肥胖'
# 筛选体形“偏瘦”的学生
df_thin = df_student.iloc[df_student.loc[df_student['体形'] == '偏瘦'].index]
# 筛选体形“正常”的学生
df_normal = df_student.loc[df_student['体形'] == '正常']
# 筛选体形“超重”的学生
df_overweight = df_student[df_student['体形'].isin(['超重'])]
# 筛选体形“肥胖”的学生
df_obesity = df_student.query("体形 == '肥胖'")
# 将5个DataFrame导入同一张excel中
filename = 'HW_体形判断-学号-姓名.xlsx'
with pd.ExcelWriter(filename) as writer:
df_student.to_excel(writer, sheet_name='全部学生', index=False)
df_thin.to_excel(writer, sheet_name='偏瘦', index=False)
df_normal.to_excel(writer, sheet_name='正常', index=False)
df_overweight.to_excel(writer, sheet_name='超重', index=False)
df_obesity.to_excel(writer, sheet_name='肥胖', index=False)
```
注意:上述代码中的“体重(kg)”和“身高(m)”是指Excel中对应的列名,如果不一致,需要进行修改。
阅读全文