## **本次實驗內容為餐飲訂單數據的分析,數據請見:[ https://pan.baidu.com/s/1tL7FE5lxs-gb6Phf8XRu_Q
](https://pan.baidu.com/s/1tL7FE5lxs-gb6Phf8XRu_Q)
,文件夾:data_analysis,下面的文件:job_info.csv 本次實驗主要是對python中的數據進行基本操作。 **
代碼為:
```code
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pandas as pd
import re
# 招聘數據探索與分析
# 1. 讀取數據並存為一個名叫job_info的數據框。此處encoding='GBK'語句是為了讀取中文
job_info = pd.read_csv('data_analysis/job_info.csv', encoding='GBK', header=None)
# 2. 將列命名為:['公司', '崗位', '工作地點', '工資', '發布日期']。
job_info.columns = ['公司', '崗位', '工作地點', '工資', '發布日期']
# 3. 哪個崗位招聘需求最多?
job_info['崗位'].value_counts().idxmax()
# 4. 取出9月3日發布的招聘信息。
job_info['發布日期'].value_counts() #頻次統計
job_info[job_info['發布日期'] == '09-03']
job_info.loc[job_info['發布日期'] == '09-03', :]
# 5. 找出工作地點在深圳的數據分析師招聘信息。
index1 = job_info['工作地點'].apply(lambda x: '深圳' in x) #工作地點包含 '深圳'這兩個字的索引
index2 = job_info['崗位'] == '數據分析師'
job_info.loc[index1 & index2, :]
# 6. 取出每個崗位的最低工資與最高工資,單位為“元/月”,若招聘信息中無工資數據則無需處理。(如2-2.5萬/月,則最低工資為20000,最高工資為25000。)
job_info['工資'].str[-3].value_counts() #只處理一下按年和按月給工資的
#string = '2-3.5萬/月'
def get_number(string =None):
try:
if string[-3] == '萬':
x = [float(i)*10000 for i in re.findall('\d+\.{0,1}\d*', string)]
elif string[-3] == '千':
x = [float(i)*1000 for i in re.findall('\d+\.{0,1}\d*', string)]
if string[-1] == '年':
x = [i/12 for i in x]
return x
except:
return None
job_info['最低月薪']=job_info['工資'].apply(get_number).str[0]
job_info['最高月薪']=job_info['工資'].apply(get_number).str[1] #apply只能加函數名,不能加參數
```
文件‘job_info.csv’中的數據截圖為:

運行結果如圖:

## 注意,本例中重點運用了python中的正則表達式模塊re來輔助處理‘工資’這一列數據,要留意其中對不同單位的薪資的處理方式。
