pos機數據清除

 新聞資訊3  |   2023-08-31 09:56  |  投稿人:pos機之家

網上有很多關于pos機數據清除,學會利用Pandas處理復雜任務的知識,也有很多人為大家解答關于pos機數據清除的問題,今天pos機之家(www.shbwcl.net)為大家整理了關于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機數據清除

pos機數據清除

天下代碼一大抄, 抄來抄去有提高, 看你會抄不會抄!

本系列文章還是引用之前的理念,閱讀文章,你不需要記,只要知道這一篇在講什么即可,收藏起來,用的時候過來抄代碼。

好了,通過前面四節的Pandas技能學習,現在我們已經了解了Pandas所有的數據處理技巧,本篇我們主要就是實戰,處理相對復雜的案例。

在本篇章節中,我們將爬取杭州租賃信息,并通過前面四節學習的pandas知識,對數據進行清洗和分析。然后利用PyEcharts生成圖表。在本篇文章中,你可以學習到實戰案例,并最終可以掌握生成報表的知識。

注意: 如果下面案例,對Pandas語法還不太熟, 請重新復習。《第二篇:數據探索與清洗:使用Pandas輕松預處理數據》

第一篇:Pandas入門指南:掌握Python數據處理利器第二篇:數據探索與清洗:使用Pandas輕松預處理數據第三篇:深入了解Pandas數據結構:Series與DataFrame第四篇:數據選擇與過濾:Pandas中的強大索引技巧第五篇:數據操作與轉換:學會利用Pandas處理復雜任務【當前篇】一、核心知識點

爬取杭州房屋租賃信息,對杭州房屋租賃市場進行分析,并最終生成分析報表。這中間有四個方面的技術點:

1.1 數據爬取

本篇文章的數據爬取,我們直接使用RPA工具, 進行爬取。所謂RPA工具,其實就是軟件工具,用于自動化執行重復、規范和可預測的任務。RPA工具通過模擬和自動化人類在計算機上的交互,可以執行各種操作,如數據輸入、處理等。可以做到爬蟲的功能。

本篇我們要使用的工具是: `八爪魚采集器` ,當然像這類工具還有很多,比如影刀、后裔采集器等。

這些工具都是可視化的,非常適合小白。不過處理起來還是有些局限性,不是特別的靈活和容易控制,如果本系列文章效果不錯,小編可能還會出RPA工具系列的文章。

1.2 數據清洗

將爬取的數據,導出CSV文件,然后通過Pandas讀取文件,并對數據進行清洗和轉換。得到我們最終想要的數據。

這里面主要用到的就是在第二篇中我們所學習的Pandas知識, 如果忘記了,可以重新回去看看。

1.3 數據分析

對清洗后的數據,進行數學處理,得到我們的分析數據。這里我們主要用到的功能,都是Pandas基本的功能。 so easy。

1.4 生成報表

報表的展示我們采用Pyecharts報表工具,干過開發的同學多少都聽過Echarts,Echarts 是一個由百度開源的數據可視化,憑借著良好的交互性,精巧的圖表設計,得到了眾多開發者的認可。而 Python 是一門富有表達力的語言,很適合用于數據處理。當數據分析遇上數據可視化時,pyecharts 誕生了。所以本節也會演示Pyecharts的處理。

好了,廢話不多說,本期的主要內容就是這些,下面開始實操。

二、案例實操2.1 數據采集

這里直接使用八爪魚采集器進行采集。

這就是八爪魚采集器,可以看到模版還挺多的,我們點擊這些模版,基本不用配置什么就可以繼續進行數據采集。

這里我們直接使用安居客的數據,輸入安居客的地址,點擊自動識別網頁。

可以看到自動識別后的數據在下面展示。

如果是我們要的數據,那么我們就可以點擊右上角的采集按鈕,進行采集。可以看到我的采集數據正在采集中了。

等待任務執行完成后,我們就可以導出數據了。點擊右下角的數據導出。

到這里我們就生成了一份原始采集數據。

杭州地鐵線租房_杭州租房_價格_房價_房產網-安居客租房網.csv

2.2 數據清洗

首先我們打開數據看下,有用的信息還是不少呢,不過有點分散。需要我們進行梳理下。

下面我們就用Pandas對數據進行處理吧。

2.2.1 數據讀取read_csv 函數讀取csv文件

import pandas as pd# 原始數據ori_home_list = pd.read_csv('./杭州地鐵線租房_杭州租房_價格_房價_房產網-安居客租房網.csv')# 一共885條有效數據len(ori_home_list)ori_home_list.columns

看一下列名稱,有點亂: Index([‘標題’, ‘標題鏈接’, ‘圖片’, ‘標簽’, ‘標簽1’, ‘標簽2’, ‘標簽3’, #‘detailsitem’,‘detailsitem_鏈接’, ‘detailsitem4’, ‘關鍵詞’, ‘zuside’],dtype=‘object’)

因為亂,所以下面我們要對這些列進行清洗,清洗的方法,可能是替換,也可能是抽取里面的數據。下面處理的步驟,小編都配有圖,通過觀察圖中原始數據的規則,利用合適的方法,進行數據清洗。

2.2.2 處理房型

通過表格中的數據,我們發現標簽1和標簽2加起來就是房型。

下面我們寫一個函數將標簽1和2進行合并。

apply 逐行執行函數

def funcHomeType(df): fx = '{}室{}廳'.format(df['標簽1'],df['標簽2']) df['房型'] = fx return dfori_home_list.apply(func = funcHomeType , axis=1 )2.2.3 處理區域

可以看到我們的區域信息是在 detailsitem 列中, 由于這個字段中文本較多,所以處理起來比較困難。具體的處理代碼實現細節,下面用代碼和配圖展示。內容較多,一定要理解。

我們先打印下原始數據,可以看到是有換行符的。下面我們主要使用2個處理技巧,將數據進行提取。split函數: 通過輸入分隔字符,將數據分隔成數組。 然后第二個是 strip函數: 清除字符前后的空格。

下面我們看下面的處理步驟,首先看下原始數據,我們看到是使用\換行符進行分隔的。

那么我們就可以先通過換行符進行分隔。

- home_list['detailsitem'].str.split('\')[1][2] 通過換行進行分隔,先拿到帶有區域的文本。

- home_list['detailsitem'].str.split('\')[1][2].strip() `移除先后空格`

- home_list['detailsitem'].str.split('\')[1][2].strip().split(' ') `根據空格再分隔`

- home_list['detailsitem'].str.split('\')[1][2].strip().split(' ')[0] `得到區域`

- home_list['detailsitem'].str.split('\')[1][2].strip().split(' ')[0].split('-') `得到區域`

思路就是這樣啊,下面我們在函數中處理。

def funcHomeType(df): fx = '{}室{}廳'.format(df['標簽1'],df['標簽2']) df['房型'] = fx address = df['detailsitem'].split('\')[2].split('\')[0].strip() df['區域'] = address.split(' ')[0].split('-')[0] return df2.2.4 清洗面積

面積其實就是標簽3,所以這里我們可以重命名,也可以新增一列。我這列采用新增一列。

home_list['面積'] = home_list['標簽3']2.2.5 清洗價格

規則比較簡單: 直接通過正則提取。

home_list['租賃價格'] = home_list['zuside'].str.extract('(\\d+) 元/月')2.2.6 清洗地鐵距離和線路

規則: 都是數字, 通過?號線能定位到線路; 通過站?m能定位到距離。所以我們直接通過正則提取。

這里會運用到正則匹配的知識,其中\\d+ 意思是匹配1個或多個數字。 .*是匹配任何字符。如果你對正則不是熟悉,可以在網站搜索。

home_list['地鐵距離'] = home_list['關鍵詞'].str.extract('站(.*)')home_list['地鐵線路'] = home_list['關鍵詞'].str.extract('(\\d+)號線')2.2.7 清洗小區

新增一列

home_list['小區'] = home_list['detailsitem4']2.2.8 保存清洗后的數據

通過上面的提取,我們可以得到 [‘區域’,‘小區’,‘面積’,‘租賃價格’,‘房型’,‘地鐵距離’,‘地鐵線路’], 我們只保留這些列,然后保存到 home.xlsx文件中。

new_home_list = home_list[['區域','小區','面積','租賃價格','房型', '地鐵距離','地鐵線路']]new_home_list.to_excel('home.xlsx')2.3 數據分析 & 生成報表2.3.1 杭州市平均租賃價格

公式: sum(總租賃價格) / sum(總租賃面積)

這里我們會對面積和租賃價格進行數學計算,所以需要就將他們轉換成浮點型。sum對某一列進行求和,然后相除。

結論: 杭州市單位面積租賃價格,約為: 90元

# 轉換成浮點型new_home_list['面積'] = new_home_list['面積'].astype(float)new_home_list['租賃價格'] = new_home_list['租賃價格'].astype(float)price_unit = new_home_list['租賃價格'].sum() / new_home_list['面積'].sum()# '杭州市平均租賃價格: 90.0678446063538''杭州市平均租賃價格: {}'.format(price_unit)2.3.2 杭州各區域租賃價格

前面是杭州范圍的租賃價格,這里我們求每個區域的租賃價格。其實就是根據區域進行分組。在pandas中可以使用 groupby函數,按照區域的維度看單位面積的平均價格。

grouped = new_home_list.groupby('區域')# 會重新生成一列數據grouped = grouped['租賃價格'].sum() / grouped['面積'].sum()area_price = grouped.reset_index()# 新生成的每平米的租賃價格,重命名area_price = area_price.rename(columns={0:'租賃價/米'})x軸是區域y軸是價格

然后我們生成報表

from pyecharts import options as optsfrom pyecharts.charts import Barbar_chart = Bar()bar_chart.add_xaxis(area_price['區域'].tolist())bar_chart.add_yaxis('租賃價/米', area_price['租賃價/米'].tolist(), markline_opts=opts.MarkLineOpts(data=[ opts.MarkLineItem(type_="average")]))bar_chart.set_global_opts(title_opts=opts.TitleOpts(title="區域租賃價格柱狀圖"))bar_chart.set_series_opts(label_opts=opts.LabelOpts(position='top'))bar_chart.render_notebook()2.3.3 杭州房源分布分析

grouped = new_home_list.groupby(by=['區域'])['區域'].count()# 將DataFrame的兩列數據轉換為餅圖數據格式data_list = list(zip(grouped.index.tolist(), grouped.tolist()))#[('上城', 75),# ('臨安', 15),# ('臨平', 45),# ('余杭', 15),# ('拱墅', 210),# ('濱江', 30),# ('蕭山', 405),# ('西湖', 75),# ('錢塘', 15)]data_listfrom pyecharts import options as optsfrom pyecharts.charts import Piepie_chart = Pie()# 設置餅圖的數據和標簽pie_chart.add("", data_list)# 設置餅圖的標題和樣式pie_chart.set_global_opts(title_opts=opts.TitleOpts(title="杭州房源分布分析"), legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"))pie_chart.render_notebook()2.3.4 房租最貴的小區 TOP 10

同樣使用groupby小區的維度,計算單位面積租金。

grouped = new_home_list.groupby(by=['小區'])['租賃價格'].sum() / new_home_list.groupby(by=['小區'])['面積'].sum()# 根據價格進行排期 grouped = grouped.sort_values(ascending=False)# 獲取前10小區grouped = grouped.head(10)grouped = grouped.sort_values()

生成條形圖

add_xaxis 添加x坐標數據add_yaxis 添加y坐標數據reversal_axis 左邊反轉,柱形圖轉條形圖

bar_chart = Bar()bar_chart.add_xaxis(grouped.index.tolist())bar_chart.add_yaxis('租賃平方價/元', grouped.round(2).tolist())# 柱狀圖反轉成條形圖bar_chart.reversal_axis()bar_chart.set_global_opts(title_opts=opts.TitleOpts(title="房租最貴的小區 TOP 10"))bar_chart.set_series_opts(label_opts=opts.LabelOpts(position='right'))bar_chart.render_notebook()

全系列課程均是免費, 你的關注是我繼續的動力,下篇更精彩。

以上就是關于pos機數據清除,學會利用Pandas處理復雜任務的知識,后面我們會繼續為大家整理關于pos機數據清除的知識,希望能夠幫助到大家!

轉發請帶上網址:http://www.shbwcl.net/newstwo/106355.html

你可能會喜歡:

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 babsan@163.com 舉報,一經查實,本站將立刻刪除。