熊猫-列值转换

时间:2019-12-10 16:13:40

标签: python pandas dataframe data-science

我的数据:我有一个数据集,如下所示:

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转换为年度值以便更好地进行比较?

3 个答案:

答案 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小时的工作周