关于问卷数据的多选题独热编码处理

import pandas as pd

# 读取Excel文件
file_path = "量表编码.xlsx"
data = pd.read_excel(file_path)

# 假设多选题的列名为 'multiple_choice_question'
multiple_choice_cols = [
    "7、",
    "8、",
    "9、",
    "12、",
    "14、",
    "21、",
    "25、",
]


# 处理多选题列,进行独热编码
def process_multiple_choice_columns(data, columns):
    for col in columns:
        if col in data.columns:
            col_index = data.columns.get_loc(col)
            multiple_choice_data = data[col].str.get_dummies("┋")
            data = data.drop(columns=[col])
            for new_col in multiple_choice_data.columns:
                data.insert(
                    col_index, f"{col}_{new_col}", multiple_choice_data[new_col]
                )
                col_index += 1
    return data


# 处理多选题列
data = process_multiple_choice_columns(data, multiple_choice_cols)


# 处理非数值型数据进行编码
def process_non_numeric_columns(data):
    non_numeric_cols = data.select_dtypes(include=["object"]).columns
    for col in non_numeric_cols:
        data[col] = pd.Categorical(data[col]).codes
    return data


# 编码非数值型数据
data = process_non_numeric_columns(data)

data_scaled = pd.DataFrame(data)
data_scaled.to_excel("data_scaled.xlsx")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值