Python Pandas Dataframe控制流程

时间:2016-11-11 22:08:46

标签: python

我有一个数据框,其中包含指定小时工资的工资列和指定员工是否在工会中的工会列。还有其他变量,但它们现在无关紧要。我正试图找到工会员工的平均工资。我编写的代码提供了一个关于员工是否在工会中的真/假列表。但是,我不知道如何应用该清单以获得平均工资。提前感谢您的帮助。

#Read cps.csv file
import pandas as pd
cps_df = pd.read_csv('cps.csv')
cps_df

#Function to determine whether or not an employee is in a union
def hourly_wage(x):
""" return true if union else false """

if x['union'] == 'Union':
    return True
else:
    return False

#Function to create a list of union vs non-union
def union_list(y):
    """ return a list determining union vs non-union """

    return [hourly_wage(x) for index, x in y.iterrows()]

#Print list
%time
print(union_list(cps_df))

1 个答案:

答案 0 :(得分:0)

我想你可以用更方便的方式做到这一点。熊猫非常适合这样的事情。

我们假设工资栏是“工资”。然后代码将如下所示:

import pandas as pd
cps_df = pd.read_csv('cps.csv')
print('Union workers mean wage: ', cps_df[cps_df.union == 'Union'].wage.mean())

它本质上是做什么的: 1.选择所有工会工人(cps_df [cps_df.union ==' Union']) 2. Aplies mean()函数与他们的工资(.wage.mean())

希望这会有所帮助。