1. 10個(gè) Python 小技巧,覆蓋了90%的數(shù)據(jù)分析需求!

        共 3813字,需瀏覽 8分鐘

         ·

        2022-03-08 14:22

        數(shù)據(jù)分析師日常工作會(huì)涉及各種任務(wù),比如數(shù)據(jù)預(yù)處理、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)模型創(chuàng)建、模型部署。

        在本文中,我將分享10個(gè) Python 操作,它們可覆蓋90%的數(shù)據(jù)分析問題。有所收獲點(diǎn)贊、收藏、關(guān)注。

        1、閱讀數(shù)據(jù)集

        閱讀數(shù)據(jù)是數(shù)據(jù)分析的組成部分,了解如何從不同的文件格式讀取數(shù)據(jù)是數(shù)據(jù)分析師的第一步。下面是如何使用 pandas 讀取包含 Covid-19 數(shù)據(jù)的 csv 文件的示例。

        import?pandas?as?pd?
        #?reading?the?countries_data?file?along?with?the?location?within?read_csv?function.
        countries_df?=?pd.read_csv('C:/Users/anmol/Desktop/Courses/Python?for?Data?Science/Code/countries_data.csv')?
        #?showing?the?first?5?rows?of?the?dataframe?
        countries_df.head()

        以下是 countries_df.head() 的輸出,我們可以使用它查看數(shù)據(jù)框的前 5 行:8510314268158b9ae77e5ea23dbe1461.webp

        2、匯總統(tǒng)計(jì)

        下一步就是通過查看數(shù)據(jù)匯總來(lái)了解數(shù)據(jù),例如 NewConfirmed、TotalConfirmed 等數(shù)字列的計(jì)數(shù)、均值、標(biāo)準(zhǔn)偏差、分位數(shù)以及國(guó)家代碼等分類列的頻率、最高出現(xiàn)值

        countries_df.describe()

        使用 describe 函數(shù),我們可以得到數(shù)據(jù)集連續(xù)變量的摘要,如下所示:d383a27d9e7e34f37e37dd3f902c3878.webp在 describe() 函數(shù)中,我們可以設(shè)置參數(shù)"include = 'all'"來(lái)獲取連續(xù)變量和分類變量的摘要

        countries_df.describe(include?=?'all')
        eff9bbe18d5343a217d3f0fe4f5cd455.webp

        3、數(shù)據(jù)選擇和過濾

        分析其實(shí)不需要數(shù)據(jù)集的所有行和列,只需要選擇感興趣的列并根據(jù)問題過濾一些行。

        例如,我們可以使用以下代碼選擇 Country 和 NewConfirmed 列:

        countries_df[['Country','NewConfirmed']]

        我們還可以將數(shù)據(jù)過濾Country,使用 loc,我們可以根據(jù)一些值過濾列,如下所示:

        countries_df.loc[countries_df['Country']?==?'United?States?of?America']
        c068eff002e0dbbe9791c47250de87ab.webp

        4、聚合

        計(jì)數(shù)、總和、均值等數(shù)據(jù)聚合,是數(shù)據(jù)分析最常執(zhí)行的任務(wù)之一。

        我們可以使用聚合找到各國(guó)的 NewConfimed 病例總數(shù)。使用 groupby 和 agg 函數(shù)執(zhí)行聚合。

        countries_df.groupby(['Country']).agg({'NewConfirmed':'sum'})

        5、Join

        使用 Join 操作將 2 個(gè)數(shù)據(jù)集組合成一個(gè)數(shù)據(jù)集。

        例如:一個(gè)數(shù)據(jù)集可能包含不同國(guó)家/地區(qū)的 Covid-19 病例數(shù),另一個(gè)數(shù)據(jù)集可能包含不同國(guó)家/地區(qū)的緯度和經(jīng)度信息。

        現(xiàn)在我們需要結(jié)合這兩個(gè)信息,那么我們可以執(zhí)行如下所示的連接操作

        countries_lat_lon?=?pd.read_excel('C:/Users/anmol/Desktop/Courses/Python?for?Data?Science/Code/countries_lat_lon.xlsx')

        #?joining?the?2?dataframe?:?countries_df?and?countries_lat_lon
        #?syntax?:?pd.merge(left_df,?right_df,?on?=?'on_column',?how?=?'type_of_join')
        joined_df?=?pd.merge(countries_df,?countries_lat_lon,?on?=?'CountryCode',?how?=?'inner')
        joined_df

        6、內(nèi)建函數(shù)

        了解數(shù)學(xué)內(nèi)建函數(shù),如 min()、max()、mean()、sum() 等,對(duì)于執(zhí)行不同的分析非常有幫助。

        我們可以通過調(diào)用它們直接在數(shù)據(jù)幀上應(yīng)用這些函數(shù),這些函數(shù)可以在列上或在聚合函數(shù)中獨(dú)立使用,如下所示:

        #?finding?sum?of?NewConfirmed?cases?of?all?the?countries?
        countries_df['NewConfirmed'].sum()
        #?Output?:?6,631,899

        #?finding?the?sum?of?NewConfirmed?cases?across?different?countries?
        countries_df.groupby(['Country']).agg({'NewConfirmed':'sum'})

        #?Output?
        #??????????NewConfirmed
        #Country?
        #Afghanistan????75
        #Albania???????168
        #Algeria???????247
        #Andorra????????0
        #Angola????????53

        7、用戶自定義函數(shù)

        我們自己編寫的函數(shù)是用戶自定義函數(shù)。我們可以在需要時(shí)通過調(diào)用該函數(shù)來(lái)執(zhí)行這些函數(shù)中的代碼。例如,我們可以創(chuàng)建一個(gè)函數(shù)來(lái)添加 2 個(gè)數(shù)字,如下所示:

        #?User?defined?function?is?created?using?'def'?keyword,?followed?by?function?definition?-?'addition()'
        #?and?2?arguments?num1?and?num2
        def?addition(num1,?num2):
        ????return?num1+num2

        #?calling?the?function?using?function?name?and?providing?the?arguments?
        print(addition(1,2))
        #output?:?3

        8、Pivot

        Pivot 是將一列行內(nèi)的唯一值轉(zhuǎn)換為多個(gè)新列,這是很棒的數(shù)據(jù)處理技術(shù)。

        在 Covid-19 數(shù)據(jù)集上使用 pivot_table() 函數(shù),我們可以將國(guó)家名稱轉(zhuǎn)換為單獨(dú)的新列:

        #?using?pivot_table?to?convert?values?within?the?Country?column?into?individual?columns?and?
        #?filling?the?values?corresponding?to?these?columns?with?numeric?variable?-?NewConfimed?
        pivot_df?=?pd.pivot_table(countries_df,??columns?=?'Country',?values?=?'NewConfirmed')
        pivot_df

        9、遍歷數(shù)據(jù)框

        很多時(shí)候需要遍歷數(shù)據(jù)框的索引和行,我們可以使用 iterrows 函數(shù)遍歷數(shù)據(jù)框:

        #?iterating?over?the?index?and?row?of?a?dataframe?using?iterrows()?function?
        for?index,?row?in?countries_df.iterrows():
        ????print('Index?is?'?+?str(index))
        ????print('Country?is?'+?str(row['Country']))
        ??
        #?Output?:?
        #?Index?is?0
        #?Country?is?Afghanistan
        #?Index?is?1
        #?Country?is?Albania
        #?.......

        10、字符串操作

        很多時(shí)候我們處理數(shù)據(jù)集中的字符串列,在這種情況下,了解一些基本的字符串操作很重要。

        例如如何將字符串轉(zhuǎn)換為大寫、小寫以及如何找到字符串的長(zhǎng)度。

        #?country?column?to?upper?case
        countries_df['Country_upper']?=?countries_df['Country'].str.upper()

        #?country?column?to?lower?case
        countries_df['CountryCode_lower']=countries_df['CountryCode'].str.lower()

        #?finding?length?of?characters?in?the?country?column?
        countries_df['len']?=?countries_df['Country'].str.len()

        countries_df.head()



        交流群限時(shí)推廣

        【小數(shù)志】公眾號(hào)唯一讀者交流群還有100個(gè)左右坑位,廣泛招募熱衷技術(shù)交流的大佬和萌新,歡迎添加個(gè)人微信:luanhz,我會(huì)拉你入群。名額有限,錯(cuò)過不再。



        c35650b8beb77c201f5aa18d4cdbceff.webp


        相關(guān)閱讀:

        瀏覽 37
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 久久久精品无码国产三级单立文 | 久久久噜噜噜www成人 | 久久网成人 | 成人电影高清无码在线观看 | 夜色精品视频 |