优化代码import pandas as pd import matplotlib.pyplot as plt import re info=pd.read_csv('information3.csv',header=None) colNames=['positionName','minimumWage','maximumWage','exp', 'educationalRequirements','工作地址','工作城市', '公司名称','行业','人员规模','企业性质' ] info.columns=colNames info['minimumWage'] aa=info.loc[:,['minimumWage','maximumWage']] info['薪资']=aa.mean(axis=1) info['薪资']=info.loc[:,['minimumWage','maximumWage']].mean(axis=1) info['人员规模'] ren=info['人员规模'] renstr=info['人员规模'].str print(type(ren)) print(type(renstr)) mid=info['人员规模'].str.findall('\d+') print(type(mid)) mid[0] map(float,mid[0]) renzho=list(map(float,mid[0])) sum(renzho)/len(renzho) sum(list(map(float,mid[0])))/len(list(map(float,mid[0]))) personScope=mid.apply(lambda x:sum(list(map(float,x)))/len(list(map(float,x)))) info['人员规模']=personScope.astype('str')21:12# 招聘要求学历分析 a = info[4].value_counts() plt.rcParams['font.sans-serif'] = 'SimHei' # 设置绘图字体 plt.subplots_adjust(bottom=0.15) # 设置图形的底边距 plt.bar(a.index, a) # 绘制条形图 plt.xticks(rotation=45) # 坐标刻度旋转 plt.title('学历要求分布') plt.show() #招聘公司性质分析 b = info[9].value_counts() plt.rcParams['font.sans-serif'] = 'SimHei' # 设置绘图字体 plt.subplots_adjust(bottom=0.15) # 设置图形的底边距 plt.bar(b.index, b) # 绘制条形图 plt.xticks(rotation=45) # 坐标刻度旋转 plt.title('企业性质分布') plt.show()
时间: 2023-09-12 09:08:02 浏览: 68
import pandas as pd.docx
可以尝试进行以下优化:
1. 使用适当的数据类型:在读取csv文件时,可以指定列的数据类型,如int、float等,这样可以提高代码的执行效率。
2. 尽可能使用向量化操作:在计算薪资和人员规模时,可以直接使用pandas的向量化操作,而不需要使用apply函数,这样可以提高代码的执行效率。
3. 避免重复代码:在绘制条形图时,可以将相同的代码封装成函数,避免重复写相同的代码。
优化后的代码如下:
```
import pandas as pd
import matplotlib.pyplot as plt
import re
# 读取csv文件,并指定列的数据类型
info=pd.read_csv('information3.csv',header=None, dtype={1: float, 2: float})
# 指定列名
colNames=['positionName','minimumWage','maximumWage','exp', 'educationalRequirements','工作地址','工作城市', '公司名称','行业','人员规模','企业性质' ]
info.columns=colNames
# 计算薪资和人员规模
info['薪资'] = info[['minimumWage','maximumWage']].mean(axis=1)
info['人员规模'] = info['人员规模'].str.findall('\d+').apply(lambda x: sum(map(float,x))/len(x)).astype(str)
# 绘制条形图的函数
def plot_bar(data, title):
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.subplots_adjust(bottom=0.15)
plt.bar(data.index, data)
plt.xticks(rotation=45)
plt.title(title)
plt.show()
# 招聘要求学历分析
a = info['educationalRequirements'].value_counts()
plot_bar(a, '学历要求分布')
# 招聘公司性质分析
b = info['企业性质'].value_counts()
plot_bar(b, '企业性质分布')
```
阅读全文