我的数据:我有一个数据集,如下所示:
dataset = pd.DataFrame({
'salary_frequency': ['Annual', 'Annual', 'Hourly', 'Hourly', 'Annual', 'Monthly'],
'salary_range_low': [51907.68, 51907.85, 35, 35, 50598, 4000]})
salary_range_low
中的值基于salary_frequency
(['Daily', 'Hourly' or 'Annual']
)。
我的问题:如何将所有salary_range_low
转换为年度值以便更好地进行比较?
答案 0 :(得分:2)
您可以使用map
:
# modify this to fit your need
maps = pd.Series([1, 365, 365*24], index=['Annually', 'Daily', 'Hourly'])
df['salary_range_low'] *= df['salary_frequency'].map(maps)
答案 1 :(得分:2)
factor_mapper = {'Hourly': 8 * 253, 'Daily': 253, 'Annual': 1}
df['salary_range_low'] = df['salary_range_low'] * df['salary_frequency'].map(factor_mapper)
答案 2 :(得分:2)
您需要了解一个数字(例如“小时”)如何转换为年份。翻译完成后,如下所示:
map_dict = {'Annual': 1, 'Hourly': 1880, 'Monthly': 12}
您可以使用here并相乘:
df['per_year'] = df['salary_frequency'].map(map_dict) * df['salary_range_low']
df
注意:1880小时是根据每年47个40小时的工作周