2017-07-07 109 views
0

数据框列:上GROUPBY数据应用规范化的熊猫数据帧

['PercentSalaryHike', 'Attrition', 'EmployeeCountFraction'] 

通过前两列分组后: EMPLOYEECOUNT显示的人的部分,其磨损是“是”和其余'不'那个特别PercentSalaryHike

DataFrame

重置索引后,数据帧的样子:

enter image description here

我想究竟是应用规范化,以简化数据帧。 应该像这样:

PercentSalaryHike Attrition-Yes Attrition-No 

11     0.195238  0.804762 
12     0.166667  0.833333 
13     0.837321  0.163351 
.. 
.. 
.. 

我已经给出的样本应用GROUPBY 2场。我想要一个通用的解决方案,通过这种解决方案,以n个字段分组的数据以这种方式归一化。

回答

1

我认为你需要unstack为重塑数据,然后add_prefixreset_index和最后rename_axis

df = df['EmployeeCountFraction'].unstack() 
           .add_prefix('Attrition-') 
           .reset_index() 
           .rename_axis(None, axis=1) 
print (df) 
    PercentSalaryHike Attrition-No Attrition-Yes 
0     11  0.804762  0.195238 
1     12  0.833333  0.166667 
2     13  0.837321  0.163351 
+0

就是这样:)。你是每日回答的人:D。感谢buddy –

+0

.add_prefix是有点特定的,如果我通过更多的字段分组数据呢? –

+1

最好的是创建一些示例,但它也应该工作。但是,如果需要像'.unstack([1,2])''这样的多层级进行拆分,那么就需要多列索引作为列,并且需要类似'df.columns = df.columns.map(' - '。join)'来展平为列名。 – jezrael