如何统计数据集中的男女数量?执行代码时出现错误
解决Excel数据统计代码报错的方案
常见错误排查与修复
1. 列名不匹配问题
代码里使用的'Gender'和'SMOKING\nCONDITION'列名,可能和Excel实际列名不符——比如列名带空格(如'SMOKING CONDITION')、大小写不一致(如'gender')、存在多余空格或特殊字符。
修复操作:先打印数据集的真实列名确认:
print(data.columns.tolist())
根据输出结果修改代码中的列名,比如实际列名是'SMOKING CONDITION',就把代码里的'SMOKING\nCONDITION'替换成对应名称。
2. 数据值格式问题
Excel中的性别、吸烟状态值可能存在大小写混乱、前后空格的情况(比如'female'、' Female '、'smoked'),导致匹配失败。
修复操作:统一数据格式后再统计:
# 处理性别列:去除空格并转为小写 data['Gender'] = data['Gender'].str.strip().str.lower() female_counts = data[data['Gender'] == 'female'].shape[0] male_counts = data[data['Gender'] == 'male'].shape[0] # 处理吸烟状态列 data['SMOKING CONDITION'] = data['SMOKING CONDITION'].str.strip().str.lower() smoked_counts = data[data['SMOKING CONDITION'] == 'smoked'].shape[0] not_smoked_counts = data[data['SMOKING CONDITION'] == 'not smoked'].shape[0]
3. 文件路径问题
如果file.xlsx不在Python脚本的当前工作目录,会触发文件找不到的错误。
修复操作:
- 要么把Excel文件放到脚本同一文件夹下
- 要么使用完整绝对路径读取,示例:
data = pd.read_excel(r'C:\Users\你的用户名\Desktop\file.xlsx', header=0, skipfooter=1)
4. Excel读取参数问题
skipfooter=1可能误删有效数据,header=0指定的表头行也可能和实际Excel不符(比如表头在第2行)。
修复操作:先去掉skipfooter参数,查看完整数据:
data = pd.read_excel(r'file.xlsx', header=0) print(data)
确认数据读取正常后,再调整header或skipfooter参数。
更简洁的统计方式
可以用value_counts()直接统计,高效且不易出错:
# 统计性别 gender_counts = data['Gender'].str.strip().str.lower().value_counts() print("性别统计:") print(gender_counts) # 统计吸烟情况 smoking_counts = data['SMOKING CONDITION'].str.strip().str.lower().value_counts() print("\n吸烟情况统计:") print(smoking_counts)
内容的提问来源于stack exchange,提问作者ozlem
相关产品推荐
相关产品推荐

