import pandas as pd import numpy as np # 读取Excel文件 df = pd.read_excel('data/data_src.xlsx') # 提取10个因子的列数据 factor_columns = ['躯体化','强迫症状','人际关系敏感','抑郁','焦虑','敌对','恐怖','偏执','精神病性','其他'] factors_data = df[factor_columns] #factors_data = df.iloc[:, 34:44] # 计算每行中因子分值大于等于3的数量 factors_above_3 = factors_data.ge(3).sum(axis=1) # print(factors_above_3) # input() # 计算精神病性因子分值大于等于4的数量 psychotic_above_4 = df['精神病性'].ge(4) # 划分等级类别 df['Level'] = None df.loc[(factors_above_3 >= 8) | psychotic_above_4, 'Level'] = 1 df.loc[(factors_above_3 >= 1) & (factors_above_3 <= 7), 'Level'] = 2 df.loc[(factors_above_3 >= 1) & (factors_above_3 < 3), 'Level'] = 3 df.loc[factors_above_3 < 1, 'Level'] = 4 # 选择需要保留的列数据 selected_columns = ['编号']+factor_columns + ['Level'] selected_data = df[selected_columns] # 重置行索引,确保顺序与之前的Excel一致 #selected_data = selected_data.reset_index(drop=True) selected_data = selected_data.sort_index() # 写入新的Excel文件 selected_data.to_excel('output_excel_file.xlsx', index=False)