我得到的数据集如下:
我想获得每个职位的每个经验级别的平均工资,我已经尝试过:
second=combine(groupby(new,:experience_level,),:salary_in_usd =>IMD.mean)
Run Code Online (Sandbox Code Playgroud)
但后来我意识到,如果我在这里进行左连接,不同职称的所有经验级别的薪水将相同,我的目标是获得一个数据集,其中每个经验级别在每个职称中都有平均薪水,有谁知道如何做到这一点?请使用Inmemorydataset包函数。谢谢
您需要按职位和经验水平进行分组:
\njulia> using DataFrames, Statistics\n\njulia> salaries = DataFrame(\n job_title = ["Data Analyst","Data Analyst","Data Analyst","Data Analyst","Data Scientist","Data Scientist","Data Scientist","Data Scientist","ML Specialist","ML Specialist","ML Specialist","ML Specialist"],\n salary_in_usd = [1,2,3,4,5,6,7,8,9,10,11,12],\n work_year = [2020,2020,2022,2022,2020,2020,2022,2022,2020,2020,2022,2022],\n experience_level = ["EN","SE","EN","SE","EN","SE","EN","SE","EN","SE","EN","SE"]\n );\n\njulia> groups = groupby(salaries,["job_title","experience_level"]);\n\njulia> avg_salaries = combine(groups, "salary_in_usd" => mean => "avg_salary")\n6\xc3\x973 DataFrame\n Row \xe2\x94\x82 job_title experience_level avg_salary \n \xe2\x94\x82 String String Float64 \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n 1 \xe2\x94\x82 Data Analyst EN 2.0\n 2 \xe2\x94\x82 Data Analyst SE 3.0\n 3 \xe2\x94\x82 Data Scientist EN 6.0\n 4 \xe2\x94\x82 Data Scientist SE 7.0\n 5 \xe2\x94\x82 ML Specialist EN 10.0\n 6 \xe2\x94\x82 ML Specialist SE 11.0\n\njulia> avg_salary_nice = unstack(avg_salaries,"experience_level","avg_salary")\n3\xc3\x973 DataFrame\n Row \xe2\x94\x82 job_title EN SE \n \xe2\x94\x82 String Float64? Float64? \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n 1 \xe2\x94\x82 Data Analyst 2.0 3.0\n 2 \xe2\x94\x82 Data Scientist 6.0 7.0\n 3 \xe2\x94\x82 ML Specialist 10.0 11.0\nRun Code Online (Sandbox Code Playgroud)\n另请参阅我的拆分-应用-组合教程(页面顶部有视频)
\nOT:有多少个工作“名称”......
\n