2017-07-07 87 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