1. 程式人生 > 其它 >據分析pandas完成資料分析專案

據分析pandas完成資料分析專案

【Python有趣打卡】資料分析pandas完成資料分析專案

![](https://img-blog.csdnimg.cn/20190306201535208.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg4ODk1OA==,size_16,color_FFFFFF,t_70)

今天依然是跟著羅羅攀學習資料分析,原創:羅羅攀(公眾號:luoluopan1) [ 學習Python有趣|資料分析三板斧

](https://mp.weixin.qq.com/s?__biz=MzIyMjY2MzgyMw

&mid=2247484203&idx=1&sn=a345fa5442e7b5675e50e6ac6a85cdb4&chksm=e82b46cbdf5ccfddfc9ef0d04363c2328f9f7e1c8b7ec688d5ad87849da9226cbeb681a00ebe&mpshare=1&scene=1&srcid=&key=5c24ae9a021be1d133d1864e71feaf07342a5c4916f45fffb8fbfd7767267d18313e507b1e26958e026506926e9eb0fdf77117ce8d41e168798f0da54672600e194f24606da3ac1cbf2783581c09f051&ascene=1&uin=MjUyOTY5NTk2Mw
&devicetype=Windows%207&version=62060728&lang=zh_CN&pass_ticket=f4bL7YM3QNKfTAcmpcu74eLdh8Q8R9q9pGB2UwDsyMN5JqchYCku1pgybnwojvBF)
。今天是在DD大資料團隊實習的第一天,正式開始資料分析之旅,很開心,感覺離自己的夢想又進了一步~

資料來源

    import numpy as np
    import pandas as pd
    data = pd.read_csv(r'C:\Users\xuxiaojielucky_i\Desktop\directory.csv')
    data.head()

還是使用 jupyter notebook
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190322181948472.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg4ODk1OA==,size_16,color_FFFFFF,t_70)

檢視資料

  • 檢查資料
    data.describe()

describe函式主要是用來了解數值型資料的分佈和概況

    data.info()

info函式主要是用來檢視資料的缺失值情況,如針對我們的問題,我們關注的資料主要是地點(國家和城市),這裡城市city部分資料缺失。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190322182639356.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg4ODk1OA==,size_16,color_FFFFFF,t_70)

資料處理

對原始資料進行預處理,包括對資料缺失值處理、異常值處理、重複值處理、多表處理、資料轉換處理等,要怎麼處理資料要具體問題具體分析。

  • 選擇資料

首先看下星巴克旗下有哪些品牌吧

    data['Brand'].unique()


不研究這麼多品牌,我們只看品牌—— ‘Starbucks’

    data = data[data['Brand'] == 'Starbucks']
    data.head()

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190325095531657.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg4ODk1OA==,size_16,color_FFFFFF,t_70)

  • 找出缺失值
    data.isnull().sum()


針對我們定義的問題,主要是對City欄位進行分析,觀察City欄位缺失值,都是國家EG的城市有缺失,百度了一下EG,是埃及,好奇的可以深入分析下為啥埃及的城市都缺失了,哈哈哈哈哈

    data[data['City'].isnull()]

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190325120921757.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg4ODk1OA==,size_16,color_FFFFFF,t_70)

  • 處理缺失值
    缺失值處理主要有兩種方法:1.刪除 2.填充
    我們這裡採用填充的方式,將 State/Province 欄位填充在 City
    data['City'] = data['City'].fillna(data['State/Province'])
    data[data['Country']=='EG']

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190325121549836.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg4ODk1OA==,size_16,color_FFFFFF,t_70)
羅老師發現星巴克資料居然把臺灣當做了國家,老師表示不能忍,怒改資料,直接重新賦值,換成了中國(中國一點都不能少)。(哈哈哈哈哈羅老師很可愛了)

    data['Country'][data['Country']=='TW']= 'CN' 

資料分析

  • 檢視各個國家星巴克店的數量
    (1)統計每個國家星巴克店的數量,並返回數量前十的國家
    data['Country'].value_counts()[0:10]


為了讓資料更加直觀,我們繪製一些圖形
由於matplotlib沒有中文庫,為了放置一些錯誤出現,可以先進行一些配置

    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤
    plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號
    
    %matplotlib inline
    country_count.plot(kind = 'bar')

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190325172135456.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg4ODk1OA==,size_16,color_FFFFFF,t_70)
再從城市的維度分析下,哪個城市的星巴克最多

    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤
    plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號
    
    %matplotlib inline
    city_count.plot(kind = 'barh')

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190325172819551.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg4ODk1OA==,size_16,color_FFFFFF,t_70)
排名最多的居然是上海,不是美國的城市,不分析不知道,一分析嚇一跳,中國的市場還是很大的。其實可以繼續深挖,這些星巴克店較多的城市有什麼共同點,是不是都是經濟比較發達的。
下面只分析中國星巴克的分佈。

    China_data=data[data['Country'] == 'CN']
    China_citycount = China_data['City'].value_counts()[0:10]
    China_citycount.plot(kind = 'bar')

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190325173653190.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg4ODk1OA==,size_16,color_FFFFFF,t_70)

  • 匯出資料

匯出上一篇文章資料處理的資料

    country_count.to_excel(r'C:\Users\xuxiaojielucky_i\Desktop\display.xlsx',
    sheet_name='國家分佈前十')

把多個DataFrame(或者Series)資料匯出到同一個excel表格

    writer = pd.ExcelWriter(r'C:\Users\xuxiaojielucky_i\Desktop\display.xlsx')
    country_count.to_excel(writer,sheet_name='國家分佈前十')
    city_count.to_excel(writer,sheet_name='城市分佈前十')
    writer.save()### 這個才可以儲存到本地