import pyreadstat
import pandas as pd
import matplotlib.pyplot as plt
input_file_path = 'E:\\桌面\\SPSS\\模拟数据库.sav'
df, meta = pyreadstat.read_sav(input_file_path)
# 计算bmi
df['bmi'] = df['体重'] / (df['身高(米)'] ** 2)
print(df[['体重', '身高(米)', 'bmi']])
# 长跑变量转换单位
if 'minutes' in df.columns and 'seconds1' in df.columns:
df['total_seconds'] = df['minutes'] * 60 + df['seconds1']
print(df[['minutes', 'seconds1', 'total_seconds']])
#体型判断与绘图
#按照国际惯例,设定BMI<18.5为偏瘦,18.5-23.9之间为体型正常,24.0-27.9为偏胖,>28.0为肥胖
df['体型'] = pd.cut(df['bmi'], bins=[0, 18.5, 23.9, 27.9, float('inf')], labels=['Thin', 'Normal', 'Fat', 'Obesity'])
print(df[['体重', '身高(米)', 'bmi', '体型']])