熊猫链中的融化和groupby导致将整数值转换为布尔值

时间:2018-11-19 23:26:52

标签: python pandas pandas-groupby

我正在尝试重塑以下数据框:

df = pd.DataFrame({'feature': [True,False,False,True], 
    'id': [1,0,1,2]})

enter image description here

...以创建类似于以下示例的数据框。现在,列名应作为索引,并且每个唯一值的出现频率应作为计数提供。

enter image description here

使用melt和groupby几乎可以实现这一点,只是将0和1(整数)强制转换为False和True(布尔值)。

df.melt().groupby(['variable','value']).size().to_frame(name='freq')

enter image description here

对于实现所需数据帧(不将0和1强制转换为布尔值)的任何建议,将不胜感激!

1 个答案:

答案 0 :(得分:1)

使用dtypeid转换为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