1 回答
TA贡献1842条经验 获得超12个赞
您可以使用Index.to_series和创建辅助数据帧Series.str.split,因此可能向前填充每行的缺失值ffill,最后分配回MultiIndex.from_arrays:
df = survey.columns.to_series().str.split(':', expand=True).ffill(axis=1)
survey.columns = pd.MultiIndex.from_arrays([df[0].tolist(), df[1].tolist()])
#simplified
#survey.columns = [df[0].tolist(), df[1].tolist()]
print (survey)
Q1 Q2 Q3
Q1 Q21 Q22 Q23 Q31 Q32
0 yes green blue green bus car
1 no red orange blue car bike
2 yes green yellow black car walk
3 yes yellow green brown bus walk
4 no green green red car bus
详情:
print (df)
0 1
Q1 Q1 Q1
Q2:Q21 Q2 Q21
Q2:Q22 Q2 Q22
Q2:Q23 Q2 Q23
Q3:Q31 Q3 Q31
Q3:Q32 Q3 Q32
添加回答
举报