我有调查数据。调查提出一个问题,受访者为每个问题选择一个或多个给定类别。然后,调查询问了诸如性别等人口统计问题。输出是一个数据框,人口统计信息作为列,每个问题中每个类别的矩阵为0和1(0=未选择,1=已选择)
为了帮助您更好地理解这一点,我提供了以下数据框:
df = pd.DataFrame({'Survey ID': [1,2,3],
'Q1_Topic A': [0,1,1],
'Q1_Topic B': [1,0,1],
'Q1_Topic C': [1,0,0],
'Q2_Topic X': [0,0,1],
'Q2_Topic Y': [0,1,0],
'Q2_Topic Z': [0,0,1],
'Gender': ['Male', 'Female', 'Male']
})
print(df)
我需要转换这个数据框,根据选择的类别,为每个问题显示一列,为每个调查显示多行。每行在相关问题列下应有一个类别
困惑了吗?这很难解释,但数据应该是
df2 = pd.DataFrame({'Survey ID': [1,1,2,3,3],
'Q1': ['B','C','A','A','B'],
'Q2': [float('nan'), float('nan'), 'Y', 'X', 'Z'],
'Gender': ['Male', 'Male', 'Female', 'Male', 'Male']
})
print(df2)
基本上我需要将df转换为df2。 注意:每个列标签的问题和主题都有一个公共分隔符“\u1”
一如既往,非常感谢您在高级课程中的帮助。没有这个社区,我有时会陷入困境,通过这个平台我学到了很多东西
使用:
这个代码怎么样?这不是花哨的代码,而是直观的
相关问题 更多 >
编程相关推荐