Python+pandas數(shù)據(jù)分析實踐總結(jié)
引言:
在近日的python數(shù)據(jù)分析實戰(zhàn)課中,我學(xué)習(xí)到使用python進(jìn)行數(shù)據(jù)分析的流程、方法,對常使用的函數(shù)有一些認(rèn)識和了解,對 numpy, pandas 包有了一定的理解但不深。這篇博客將是我自己用于總結(jié)歸納的圣地,我將對整個項目的 key point 進(jìn)行歸納總結(jié),提取其中精華之所在,汲取之加以奮發(fā)向前。
一、分析數(shù)據(jù)文件:
在拿到數(shù)據(jù)的第一刻,莫急,先打開數(shù)據(jù)文件看一看,明白文件里的數(shù)據(jù)能夠說明什么。于是乎我們得以提出分析的目標(biāo),并開始思索如何能夠?qū)崿F(xiàn)我們的目的。例如,我們手里有一份某電商平臺一年的營銷數(shù)據(jù),這份數(shù)據(jù)中包含了達(dá)成交易訂單的用戶ID、本次訂單對應(yīng)的商品數(shù)量、總價、時間,思考:我們可以利用這些數(shù)據(jù)得到哪些結(jié)論?——從時間維度:分析不同月份的營銷額;從客戶維度:分析回購率、復(fù)購率、新老用戶比例。根據(jù)得出的結(jié)論,我們得以制定相應(yīng)的策略來提高商家的盈利。
二、數(shù)據(jù)預(yù)處理:
提一嘴,在文件最開始導(dǎo)入包的時候輸入 plt.rcParams['font.sans-serif'] = 'SimHei' 以讓中文能夠正常顯示(IPython中如此)
首先讀取文件,利用 pandas 根據(jù)不同文件類型選擇不同的讀取函數(shù):
- csv: pd.read_csv('name.csv', encoding='utf-8/GBK')
- text: pd.read_table('name.txt', names=columns, sep='\s+') # names指定每一列數(shù)據(jù)的含義,sep是劃分?jǐn)?shù)據(jù)時的參考,\s+表示跳過任意多的空格
- excel: pd.read_excel('name.xlsx')
接著進(jìn)行數(shù)據(jù)的預(yù)處理:
- 對于出現(xiàn)NAN的行或列且需要刪除的:data.dropna(axis=0, how='any', inplace=True) # 刪除帶有NAN的一整行數(shù)據(jù),并修改原值
- 對于重復(fù)出現(xiàn)的行或列:data.drop_duplicates(axis=0, inplace=True) # 刪除重復(fù)的行,并修改原值
- 對于無用的行或列:data.drop(columns='order_id', axis=1, inplace=True) # 刪除 order_id 這一列
- 對于需要更新索引的數(shù)據(jù):data.reset_index(drop=True, inplace=True) 把原來的索引index列刪除,并更新index
對于單位不統(tǒng)一的數(shù)據(jù):如下圖
看到銷售金額一列的單位有元也有萬元,并且含有逗號,為了方便處理,我們將其格式化。
def data_deal(number): if number.find('萬元')!= -1:#找到帶有萬元的,取出數(shù)字,去掉逗號,轉(zhuǎn)成float,*10000 number_new = float(number[:number.find('萬元')].replace(',',''))*10000 else: # 找到帶有元的并處理 number_new = float(number[:number.find('元')].replace(',','')) return number_new data['銷售金額'] = data['銷售金額'].map(data_deal)
這里我們使用到了 Series.map() 函數(shù),該函數(shù)的作用與 apply 和 applymap 類似,接收一個函數(shù)或含有映射關(guān)系的字典型對象,區(qū)別如下:
- apply:作用于dataframe的整行或整列
- applymap:作用于dataframe的每一個元素
- map:作用于series中的每一個元素,在df結(jié)構(gòu)中無法使用map函數(shù)
詳情:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html?highlight=map
到此這篇關(guān)于Python+pandas數(shù)據(jù)分析實踐總結(jié)的文章就介紹到這了,更多相關(guān)python數(shù)據(jù)分析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)批量將word轉(zhuǎn)換成pdf
這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)批量將word文檔轉(zhuǎn)換成pdf文件,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-08-08Python利用itchat庫向好友或者公眾號發(fā)消息的實例
今天小編就為大家分享一篇Python利用itchat庫向好友或者公眾號發(fā)消息的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02Django實現(xiàn)微信小程序的登錄驗證功能并維護(hù)登錄態(tài)
這篇文章主要介紹了Django實現(xiàn)小程序的登錄驗證功能并維護(hù)登錄態(tài),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07