我正在尝试重塑以下数据框:
df = pd.DataFrame({'feature': [True,False,False,True],
'id': [1,0,1,2]})
...以创建类似于以下示例的数据框。现在,列名应作为索引,并且每个唯一值的出现频率应作为计数提供。
使用melt和groupby几乎可以实现这一点,只是将0和1(整数)强制转换为False和True(布尔值)。
df.melt().groupby(['variable','value']).size().to_frame(name='freq')
对于实现所需数据帧(不将0和1强制转换为布尔值)的任何建议,将不胜感激!
答案 0 :(得分:1)
使用dtype
将id
转换为str
df.id=df.id.astype(str)
df.melt().groupby(['variable','value']).size().to_frame(name='freq')
Out[81]:
freq
variable value
feature False 2
True 2
id 0 1
1 2
2 1