pos機(jī)數(shù)據(jù)清除

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

網(wǎng)上有很多關(guān)于pos機(jī)數(shù)據(jù)清除,學(xué)會(huì)利用Pandas處理復(fù)雜任務(wù)的知識(shí),也有很多人為大家解答關(guān)于pos機(jī)數(shù)據(jù)清除的問題,今天pos機(jī)之家(www.bulldancerbisonranch.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來看下吧!

本文目錄一覽:

1、pos機(jī)數(shù)據(jù)清除

pos機(jī)數(shù)據(jù)清除

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

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

好了,通過前面四節(jié)的Pandas技能學(xué)習(xí),現(xiàn)在我們已經(jīng)了解了Pandas所有的數(shù)據(jù)處理技巧,本篇我們主要就是實(shí)戰(zhàn),處理相對復(fù)雜的案例。

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

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

第一篇:Pandas入門指南:掌握Python數(shù)據(jù)處理利器第二篇:數(shù)據(jù)探索與清洗:使用Pandas輕松預(yù)處理數(shù)據(jù)第三篇:深入了解Pandas數(shù)據(jù)結(jié)構(gòu):Series與DataFrame第四篇:數(shù)據(jù)選擇與過濾:Pandas中的強(qiáng)大索引技巧第五篇:數(shù)據(jù)操作與轉(zhuǎn)換:學(xué)會(huì)利用Pandas處理復(fù)雜任務(wù)【當(dāng)前篇】一、核心知識(shí)點(diǎn)

爬取杭州房屋租賃信息,對杭州房屋租賃市場進(jìn)行分析,并最終生成分析報(bào)表。這中間有四個(gè)方面的技術(shù)點(diǎn):

1.1 數(shù)據(jù)爬取

本篇文章的數(shù)據(jù)爬取,我們直接使用RPA工具, 進(jìn)行爬取。所謂RPA工具,其實(shí)就是軟件工具,用于自動(dòng)化執(zhí)行重復(fù)、規(guī)范和可預(yù)測的任務(wù)。RPA工具通過模擬和自動(dòng)化人類在計(jì)算機(jī)上的交互,可以執(zhí)行各種操作,如數(shù)據(jù)輸入、處理等??梢宰龅脚老x的功能。

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

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

1.2 數(shù)據(jù)清洗

將爬取的數(shù)據(jù),導(dǎo)出CSV文件,然后通過Pandas讀取文件,并對數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)換。得到我們最終想要的數(shù)據(jù)。

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

1.3 數(shù)據(jù)分析

對清洗后的數(shù)據(jù),進(jìn)行數(shù)學(xué)處理,得到我們的分析數(shù)據(jù)。這里我們主要用到的功能,都是Pandas基本的功能。 so easy。

1.4 生成報(bào)表

報(bào)表的展示我們采用Pyecharts報(bào)表工具,干過開發(fā)的同學(xué)多少都聽過Echarts,Echarts 是一個(gè)由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。而 Python 是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時(shí),pyecharts 誕生了。所以本節(jié)也會(huì)演示Pyecharts的處理。

好了,廢話不多說,本期的主要內(nèi)容就是這些,下面開始實(shí)操。

二、案例實(shí)操2.1 數(shù)據(jù)采集

這里直接使用八爪魚采集器進(jìn)行采集。

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

這里我們直接使用安居客的數(shù)據(jù),輸入安居客的地址,點(diǎn)擊自動(dòng)識(shí)別網(wǎng)頁。

可以看到自動(dòng)識(shí)別后的數(shù)據(jù)在下面展示。

如果是我們要的數(shù)據(jù),那么我們就可以點(diǎn)擊右上角的采集按鈕,進(jìn)行采集??梢钥吹轿业牟杉瘮?shù)據(jù)正在采集中了。

等待任務(wù)執(zhí)行完成后,我們就可以導(dǎo)出數(shù)據(jù)了。點(diǎn)擊右下角的數(shù)據(jù)導(dǎo)出。

到這里我們就生成了一份原始采集數(shù)據(jù)。

杭州地鐵線租房_杭州租房_價(jià)格_房價(jià)_房產(chǎn)網(wǎng)-安居客租房網(wǎng).csv

2.2 數(shù)據(jù)清洗

首先我們打開數(shù)據(jù)看下,有用的信息還是不少呢,不過有點(diǎn)分散。需要我們進(jìn)行梳理下。

下面我們就用Pandas對數(shù)據(jù)進(jìn)行處理吧。

2.2.1 數(shù)據(jù)讀取read_csv 函數(shù)讀取csv文件

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

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

因?yàn)閬y,所以下面我們要對這些列進(jìn)行清洗,清洗的方法,可能是替換,也可能是抽取里面的數(shù)據(jù)。下面處理的步驟,小編都配有圖,通過觀察圖中原始數(shù)據(jù)的規(guī)則,利用合適的方法,進(jìn)行數(shù)據(jù)清洗。

2.2.2 處理房型

通過表格中的數(shù)據(jù),我們發(fā)現(xiàn)標(biāo)簽1和標(biāo)簽2加起來就是房型。

下面我們寫一個(gè)函數(shù)將標(biāo)簽1和2進(jìn)行合并。

apply 逐行執(zhí)行函數(shù)

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

可以看到我們的區(qū)域信息是在 detailsitem 列中, 由于這個(gè)字段中文本較多,所以處理起來比較困難。具體的處理代碼實(shí)現(xiàn)細(xì)節(jié),下面用代碼和配圖展示。內(nèi)容較多,一定要理解。

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

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

那么我們就可以先通過換行符進(jìn)行分隔。

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

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

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

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

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

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

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

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

home_list['面積'] = home_list['標(biāo)簽3']2.2.5 清洗價(jià)格

規(guī)則比較簡單: 直接通過正則提取。

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

規(guī)則: 都是數(shù)字, 通過?號(hào)線能定位到線路; 通過站?m能定位到距離。所以我們直接通過正則提取。

這里會(huì)運(yùn)用到正則匹配的知識(shí),其中\(zhòng)\d+ 意思是匹配1個(gè)或多個(gè)數(shù)字。 .*是匹配任何字符。如果你對正則不是熟悉,可以在網(wǎng)站搜索。

home_list['地鐵距離'] = home_list['關(guān)鍵詞'].str.extract('站(.*)')home_list['地鐵線路'] = home_list['關(guān)鍵詞'].str.extract('(\\d+)號(hào)線')2.2.7 清洗小區(qū)

新增一列

home_list['小區(qū)'] = home_list['detailsitem4']2.2.8 保存清洗后的數(shù)據(jù)

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

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

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

這里我們會(huì)對面積和租賃價(jià)格進(jìn)行數(shù)學(xué)計(jì)算,所以需要就將他們轉(zhuǎn)換成浮點(diǎn)型。sum對某一列進(jìn)行求和,然后相除。

結(jié)論: 杭州市單位面積租賃價(jià)格,約為: 90元

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

前面是杭州范圍的租賃價(jià)格,這里我們求每個(gè)區(qū)域的租賃價(jià)格。其實(shí)就是根據(jù)區(qū)域進(jìn)行分組。在pandas中可以使用 groupby函數(shù),按照區(qū)域的維度看單位面積的平均價(jià)格。

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

然后我們生成報(bào)表

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

grouped = new_home_list.groupby(by=['區(qū)域'])['區(qū)域'].count()# 將DataFrame的兩列數(shù)據(jù)轉(zhuǎn)換為餅圖數(shù)據(jù)格式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()# 設(shè)置餅圖的數(shù)據(jù)和標(biāo)簽pie_chart.add("", data_list)# 設(shè)置餅圖的標(biāo)題和樣式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 房租最貴的小區(qū) TOP 10

同樣使用groupby小區(qū)的維度,計(jì)算單位面積租金。

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

生成條形圖

add_xaxis 添加x坐標(biāo)數(shù)據(jù)add_yaxis 添加y坐標(biāo)數(shù)據(jù)reversal_axis 左邊反轉(zhuǎn),柱形圖轉(zhuǎn)條形圖

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

全系列課程均是免費(fèi), 你的關(guān)注是我繼續(xù)的動(dòng)力,下篇更精彩。

以上就是關(guān)于pos機(jī)數(shù)據(jù)清除,學(xué)會(huì)利用Pandas處理復(fù)雜任務(wù)的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于pos機(jī)數(shù)據(jù)清除的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)發(fā)請帶上網(wǎng)址:http://www.bulldancerbisonranch.com/newstwo/106355.html

你可能會(huì)喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。