손잡이 걸이하는 방법이 상세 데이터의 시각적 분석을 python3

이 문서는 데이터 분석을 시각화 풀 훅에 python3에 대한 관련 정보를 소개하는 주로, 용지 샘플 코드를 배우거나 Python3 학습의 특정 참조 값이 사용하는 우리 모두에게 아주 자세하게 설명, 필요 친구 아래 함께 모여 그것에서 배울
서문

뒷면에는 우리가 데이터 아래 후크 크롤링을 끌어 수집 된 데이터 때문에, 다른 서 움직임에, 그것을 꺼내 그것을 분석하고 어떤 정보를 포함하고 이러한 데이터를 확인하는 방법을 말했다.
다음은 자세한 설명을 살펴보고, 많은 말을 이야기하지 않았다

첫째, 준비

같은 ID 등의 정보가 포함 된 마지막 캐치 데이터 때문에, 우리는 그것을 없애해야하고, 참으로 이상 값 또는 값이 있는지 여부를 확인 기술 통계를 볼 수 있습니다.

read_file = "analyst.csv"
# 读取文件获得数据
data = pd.read_csv(read_file, encoding="gbk")
# 去除数据中无关的列
data = data[:].drop(['ID'], axis=1)
# 描述性统计
data.describe()

그림 삽입 설명 여기속성의 독특한 표현의 결과는 일례로서 학습 조건은 아래의 값과 다른 개수의 존재하에 나열된, 그것은 [학부 대학 과정, 임의의 네 개의 다른 값, 상단의 최대 개수를 나타낸다 포함 값 [도]는, 주파수를 발생하는 주파수 (387)를 나타낸다. 더 급여 독특한, 우리는 값이 무엇인지 살펴 봅니다.

print(data['学历要求'].unique())
print(data['工作经验'].unique())
print(data['薪资'].unique())

그림 삽입 설명 여기

둘째, 전처리

우리는 위의 두 그래프에서 볼 수있는, 학문적 요구 사항과 적은 업무 경험없이 누락 된 값과 이상 값을 직접 분석 할 수 있습니다 값,하지만 더 많은 급여 분포하기 위해서는 75 종류의 총이 더 나은 분석 우리는 선불을 만들고 싶어. 그 분포에 따라, 각각의 급여 범위의 중앙값을 고려 [5K, 5K-10K, 10K - 20K 20K - 30K, 30K-40K, 40K] 다음으로 또는 분석을위한 더 편리한 분할 될 수 있고, 우리는 특정 범위로 분할.

# 对薪资进行预处理
def pre_salary(data):
 salarys = data['薪资'].values
 salary_dic = {}
 for salary in salarys:
 # 根据'-'进行分割并去掉'k',分别将两端的值转换成整数
 min_sa = int(salary.split('-')[0][:-1])
 max_sa = int(salary.split('-')[1][:-1])
 # 求中位数
 median_sa = (min_sa + max_sa) / 2
 # 判断其值并划分到指定范围
 if median_sa < 5:
 salary_dic[u'5k以下'] = salary_dic.get(u'5k以下', 0) + 1
 elif median_sa > 5 and median_sa < 10:
 salary_dic[u'5k-10k'] = salary_dic.get(u'5k-10k', 0) + 1
 elif median_sa > 10 and median_sa < 20:
 salary_dic[u'10k-20k'] = salary_dic.get(u'10k-20k', 0) + 1
 elif median_sa > 20 and median_sa < 30:
 salary_dic[u'20k-30k'] = salary_dic.get(u'20k-30k', 0) + 1
 elif median_sa > 30 and median_sa < 40:
 salary_dic[u'30k-40k'] = salary_dic.get(u'30k-40k', 0) + 1
 else:
 salary_dic[u'40以上'] = salary_dic.get(u'40以上', 0) + 1
 print(salary_dic)
 return salary_dic

[급여] 전처리 한 후,뿐만 아니라 대한 [텍스트] 자격 전처리. 우리가 jieba 라이브러리를 처리하도록 단어 구름을하기 때문에, 텍스트 요구 나누어 이상 발생 빈도하지만 단어의 아무 의미의 일부를 제거하기 위해, 우리는 중지 단어를 호출합니다. 중국어 단어의 jieba 동의어 사전 분할되는 파이썬 구현은 매우 강력한 기능을 가지고 있습니다.

import jieba
def cut_text(text):
 stopwords =['熟悉','技术','职位','相关','工作','开发','使用','能力',
 '优先','描述','任职','经验','经验者','具有','具备','以上','善于',
 '一种','以及','一定','进行','能够','我们']
 for stopword in stopwords:
 jieba.del_word(stopword)
  
 words = jieba.lcut(text)
 content = " ".join(words)
 return content

전처리 후, 시각적 분석 될 수있다.

셋째, 시각적 분석

우리는 1 환형 드로우 바 차트, 다음 라인으로 데이터를 전달도 환상 코드는 다음과 같이

def draw_pie(dic):
 labels = []
 count = []
  
 for key, value in dic.items():
 labels.append(key)
 count.append(value)
  
 fig, ax = plt.subplots(figsize=(8, 6), subplot_kw=dict(aspect="equal"))
 
 # 绘制饼状图,wedgeprops 表示每个扇形的宽度
 wedges, texts = ax.pie(count, wedgeprops=dict(width=0.5), startangle=0)
 # 文本框设置
 bbox_props = dict(boxstyle="square,pad=0.9", fc="w", ec="k", lw=0)
 # 线与箭头设置
 kw = dict(xycoords='data', textcoords='data', arrowprops=dict(arrowstyle="-"),
 bbox=bbox_props, zorder=0, va="center")
 
 for i, p in enumerate(wedges):
 ang = (p.theta2 - p.theta1)/2. + p.theta1
 y = np.sin(np.deg2rad(ang))
 x = np.cos(np.deg2rad(ang))
 # 设置文本框在扇形的哪一侧
 horizontalalignment = {-1: "right", 1: "left"}[int(np.sign(x))]
 # 用于设置箭头的弯曲程度
 connectionstyle = "angle,angleA=0,angleB={}".format(ang)
 kw["arrowprops"].update({"connectionstyle": connectionstyle})
 # annotate()用于对已绘制的图形做标注,text是注释文本,含 'xy' 的参数跟坐标点有关
 text = labels[i] + ": " + str('%.2f' %((count[i])/sum(count)*100)) + "%"
 ax.annotate(text, size=13, xy=(x, y), xytext=(1.35*np.sign(x), 1.4*y),
  horizontalalignment=horizontalalignment, **kw)
 plt.show()

다음과 같이 히스토그램 코드는 다음과 같습니다

def draw_workYear(data):
 workyears = list(data[u'工作经验'].values)
 wy_dic = {}
 labels = []
 count = []
 # 得到工作经验对应的数目并保存到count中
 for workyear in workyears:
 wy_dic[workyear] = wy_dic.get(workyear, 0) + 1
 print(wy_dic)
 # wy_series = pd.Series(wy_dic)
 # 分别得到 count 的 key 和 value
 for key, value in wy_dic.items():
 labels.append(key)
 count.append(value)
 # 生成 keys 个数的数组
 x = np.arange(len(labels)) + 1
 # 将 values 转换成数组
 y = np.array(count)
  
 fig, axes = plt.subplots(figsize=(10, 8))
 axes.bar(x, y, color="#1195d0")
 plt.xticks(x, labels, size=13, rotation=0)
 plt.xlabel(u'工作经验', fontsize=15)
 plt.ylabel(u'数量', fontsize=15)
  
 # 根据坐标将数字标在图中,ha、va 为对齐方式
 for a, b in zip(x, y):
 plt.text(a, b+1, '%.0f' % b, ha='center', va='bottom', fontsize=12)
 plt.show()

우리는 학문적 요구 사항과 급여 데이터 사전은 줄에 반지로 함수를 좋은 패스를 그릴 형태에 대해 조금 뭔가가되었다. 또한, 우리는 시각화를위한도 좋아 [텍스트] 자격 것.

from wordcloud import WordCloud
# 绘制词云图
def draw_wordcloud(content):
  
 wc = WordCloud(
 font_path = 'c:\\Windows\Fonts\msyh.ttf',
 background_color = 'white',
 max_font_size=150, # 字体最大值
 min_font_size=24, # 字体最小值
 random_state=800, # 随机数
 collocations=False, # 避免重复单词
 width=1600,height=1200,margin=35, # 图像宽高,字间距
 )
 wc.generate(content)
 
 plt.figure(dpi=160) # 放大或缩小
 plt.imshow(wc, interpolation='catrom',vmax=1000)
 plt.axis("off") # 隐藏坐标

우리는 쿤 버클 Python을 학습하는 것이 좋습니다 : 913066266, 어떻게 노인이 학습에서 봐! 기본적인 웹 개발 파이썬 스크립트에서, 파충류, 장고, 데이터 마이닝 등을 PDF, 실제 소스 코드]로 마무리되는 전투 데이터 프로젝트를 제로. 모든 작은 파이썬 파트너에게 주어! 매일은, 다니엘 배우고 작은 세부 사항에주의 할 필요가있는 몇 가지 방법을 공유하고, 타이밍 파이썬 기술을 설명, 우리의 [파이썬 학습자 모임에 참여합니다

넷째, 결과 및 요약 (https://jq.qq.com/?_wv=1027&k=5JIjRvv)

그림 삽입 설명 여기
 86 %를 차지 데이터 분석 학부 파이썬 대부분의 학문적 요구 사항.
 그림 삽입 설명 여기
  차트에서 볼 수있는 바와 같이, 파이썬 데이터 분석 1--5 년의 경력 요구 사항의 대부분.
  그것은 더 10K-20K에 대한 그 임금 파이썬 데이터 분석을 따르며, 또한 더 많은 40, 우리가 작업 요구를 쳐다 보도록 요구 사항, 상대적으로 높은 것입니다 추정 높은 임금.
  그림 삽입 설명 여기
  단어 구름에서 볼 수 있듯이, 데이터 분석은 물론 데이터와 통계에 더 민감 할 것이다, 엑셀은, 파이썬, 데이터 마이닝, 또한 특정 요구 사항이 하둡. 뿐만 아니라, 또한 탄력성과 문제 해결 능력, 좋은 의사 소통 능력, 사고 능력이 어느 정도 필요하다는 것을.

개요

이 기사에 대한 모든 있다고, 나는이 논문의 내용을 배울 수있는 사람 또는 작품에 대한 학습의 일부 참조 값이 되었기를 바랍니다

게시 47 개 원래 기사 · 원 찬양 53 ·은 50000 +를 볼

추천

출처blog.csdn.net/haoxun03/article/details/104270008