本帖最后由 阿奇_o 于 2021-4-3 18:06 编辑
又是你。。pandas可以出个系列了,哈哈
好,看代码:# 新需求:
# 1.去掉 地点 列里的方括号
# 2.计算 行业平均工资
df = pd.read_csv('lagou_r_new.csv')
print(df.head())
print(df.columns)
# 1. 去掉 公司 列里的方括号
r = df['地点'].apply(lambda s: s.replace('[','').replace(']', ''))
print(r.head())
print( pd.concat( [df[df.columns[:3]], r , df[df.columns[4:]] ], axis=1).head() )
# 2.计算 行业平均工资
# 思路:
# 因 薪资 是 8k-15k 的形式,可以将 k 替换为 000 , - 替换为 + ;
# 然后进行 eval() 求和,即 变成 eval(‘8000’+‘15000’) , 再 除以 2 即 每个岗位的平均薪资
df_rep = df['薪资'].apply(lambda s: eval(s.replace('k','000').replace('K', '000').replace('-', '+'))) # 返回的是 列表/序列(Series)!
print(df_rep.head()) #
df_rep = pd.DataFrame(df_rep)
# hy = df['公司状况'].apply(lambda s: s.split(' / ')[0]) # 行业分类。。
# print(hy)
# avg = df_rep.groupby(hy)[['薪资']].mean()
# 以 求 各城市平均薪资 为例(行业列还没清洗好,数据脏乱)
avg = df_rep.groupby(by=df['城市'])['薪资'].mean().round()
print(avg.sort_values(ascending=False))
# 我勒个去,北上深 40K+ , 原来 年薪40万 是这样来的,哈哈
|