2017-04-05 102 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