文科生,Python新手,求教问题,主要是在读取SPSS文件(.sav)并进行数据处理后,如何直接将处理后的数据直接保存为新的.sav格式文件,麻烦大佬看看代码哪里有错误

本文介绍了如何使用Python库pyreadstat读取SPSS文件,进行BMI计算、时间单位转换,并根据BMI值将体型分类。随后,通过matplotlib绘制饼状图展示体型分布,并处理数据类型以便于后续文件保存。最后,提到在保存文件时遇到的PyreadstatError问题。
摘要由CSDN通过智能技术生成
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', '体型']])
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值