2017-04-05 104 views
1

我有以下形式的數據幀:熔融熊貓數據幀和分割兩行基於

    0 
college  gender 
Engineering F  117 
      M  2240 

,我想將它更改爲:

college  M:F 
Engineering 19:1 

其中M:F代表的比率男性與女性。

有沒有辦法用熊貓做到這一點,而無需遍歷所有行?

回答

1

看來你需要unstack重塑,然後劃分:

df = df.unstack()[0] 
#same as 
#df = df[0].unstack() 
df['M:F'] = df['M']/df['F'] 
#same as 
#df['M:F'] = df['M'].div(df['F']) 

print (df) 
         0 
college  gender  
Engineering F  117 
      M  2240 
Engineering1 F  117 
      M  2240 
df = df.unstack()[0] 
df['M:F'] = df['M'].div(df['F']) 
print (df) 
gender   F  M  M:F 
college       
Engineering 117 2240 19.145299 
Engineering1 117 2240 19.145299 

print (df[['M:F']]) 
gender    M:F 
college     
Engineering 19.145299 
Engineering1 19.145299 
+0

它是如何工作的? – jezrael