python - 计算 pandas 数据框中行之间的差异

标签 python pandas

我想计算数据框中两个类别之间的差异。例如,在下面的情况下,我想计算每项工作中男性和女性之间的差异。然而,有些工作只能由男性或女性完成。有什么有效的方法可以做到这一点?谢谢。

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

最佳答案

您可以进行数据透视,使同一工作的男性和女性薪酬位于同一行。然后您可以直观地进行比较,或运行其他基于行的代码。

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

关于python - 计算 pandas 数据框中行之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30960734/

相关文章:

python-3.x - 如何从 pandas/python 中的长列表中提取混合元素

python - 如何测试MongoEngine的DoesNotExist异常

python - 正则表达式类似日期的字符串

python - 使用 Python 的二元词云

python - Pandas 0.23.1属性错误: 'module' object has no attribute 'rolling'

python - Pandas |分组数据框中的 Fillna(ffill) 未填充

python - Python中sklearn.tree.decisiontreeclassifier的as_formula说明符?

python - python中的错误处理问题

python - 导入pandas导入错误: No module named pandas

python - Pandas:DataFrame describe返回的count是 float 的情况有哪些