python
import pandas as pd
from kmodes.kmodes import KModes
# 读取csv文件
data = pd.read_csv('ma1.csv')
# 数据预处理,将相关列合并为乘车满意度和其他满意度
data['乘车满意度'] = data[['售票服务', '候车服务', '乘车服务', '下车服务']].sum(axis=1)
data['其他满意度'] = data[['行李寄存和托运服务', '线路布局', '文化建设', '安全保障']].sum(axis=1)
data = data[['您的年龄', '出行目的', '地区', '乘车满意度', '其他满意度']] # 只保留需要的列
# 定义聚类模型,这里假设有5个类别,根据实际情况调整
k_modes = KModes(n_clusters=5, init='Cao', n_init=10)
# 对年龄、出行目的和地区进行单独聚类
age_cluster = k_modes.fit_predict(data[['您的年龄']])
purpose_cluster = k_modes.fit_predict(data[['出行目的']])
area_cluster = k_modes.fit_predict(data[['地区']])
# 对乘车满意度和其他满意度分别进行单独聚类
satisfaction_cluster = k_modes.fit_predict(data[['乘车满意度']])
other_satisfaction_cluster = k_modes.fit_predict(data[['其他满意度']])
# 创建一个包含原始列和聚类结果的新DataFrame
clustered_data = pd.DataFrame({
'年龄': data['您的年龄'],
'目的聚类': purpose_cluster,
'地区聚类': area_cluster,
'乘车满意度聚类': satisfaction_cluster,
'其他满意度聚类': other_satisfaction_cluster
})
# 将聚类后结果保存至新文件
clustered_data.to_csv('ma2.csv', index=False)