2015-06-21 124 views
2

我想计算数据框中两个类别之间的差异。例如,在下面的例子中,我想计算每个工作中男性和女性之间的差异。但是,有些工作是由男性或女性完成的。什么是有效的方法来做到这一点?谢谢。计算大熊猫数据帧中的行之间的差异

import pandas as pd 

pd.DataFrame({'job': ['a', 'a', 'b', 'b', 'c'], 'gender':['M', 'F', 'M', 'F', 'M'], 'income':[300, 200, 450, 400, 350]}) 

Out[3]: 
    gender income job 
0  M  300 a 
1  F  200 a 
2  M  450 b 
3  F  400 b 
4  M  350 c 

回答

2

您可以做一个数据透视表,使同一行的男性和女性的薪水在同一行。然后,您可以直观地比较,或运行其他基于行的代码。

import pandas as pd 

df = pd.DataFrame({'job': ['a', 'a', 'b', 'b', 'c'], 'gender':['M', 'F', 'M', 'F', 'M'], 'income':[300, 200, 450, 400, 350]}) 

compare_income_by_gender_df = df.pivot(index='job', columns='gender', values='income') 

print compare_income_by_gender_df 

导致

python pivot.py 
gender F M 
job    
a  200 300 
b  400 450 
c  NaN 350 

还看到:Pandas Reshaping and Pivot Tables