2015-06-21 4 views
2

Я хотел бы вычислить разницу между двумя категориями в кадре данных. Например, в следующем случае я хочу рассчитать различия между мужчиной и женщиной на каждой задаче. Тем не менее, есть некоторые работы, выполняемые только мужчинами или женщинами. Каков эффективный способ сделать это? Благодарю.Вычислить разницу между строками в pandas dataframe

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

Смежные вопросы