|
|
|
|
@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|