10個 Python 小技巧

數據分析那些事
8 min readMar 30, 2022

--

一期一會,Python系列今日繼續。

資料分析師日常工作會涉及各種任務,比如資料預處理、資料分析、機器學習模型建立、模型部署。

在本文中,我將分享10個 Python 操作,它們可覆蓋90%的資料分析問題。

1、 閱讀資料集

閱讀資料是資料分析的組成部分,瞭解如何從不同的檔案格式讀取資料是資料分析師的第一步。下面是如何使用 pandas 讀取包含 Covid-19 資料的 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() 的輸出,我們可以使用它檢視資料框的前 5 行:

2、彙總統計

下一步就是透過檢視資料彙總來了解資料,例如 NewConfirmed、TotalConfirmed 等數字列的計數、均值、標準偏差、分位數以及國家程式碼等分類列的頻率、最高出現值

countries_df.describe()

使用 describe 函式,我們可以得到資料集連續變數的摘要,如下所示:

在 describe() 函式中,我們可以設定引數”include = ‘all’”來獲取連續變數和分類變數的摘要

countries_df.describe(include = 'all')

3、資料選擇和過濾

分析其實不需要資料集的所有行和列,只需要選擇感興趣的列並根據問題過濾一些行。

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

countries_df[[‘Country’,’NewConfirmed’]]

我們還可以將資料過濾Country,使用 loc,我們可以根據一些值過濾列,如下所示:

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

4、聚合

計數、總和、均值等資料聚合,是資料分析最常執行的任務之一。

我們可以使用聚合找到各國的 NewConfimed 病例總數。使用 groupby 和 agg 函式執行聚合。

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

5、Join

使用 Join 操作將 2 個數據集組合成一個數據集。

例如:一個數據集可能包含不同國家/地區的 Covid-19 病例數,另一個數據集可能包含不同國家/地區的緯度和經度資訊。

現在我們需要結合這兩個資訊,那麼我們可以執行如下所示的連線操作

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、內建函式

瞭解數學內建函式,如 min()、max()、mean()、sum() 等,對於執行不同的分析非常有幫助。

我們可以透過呼叫它們直接在資料幀上應用這些函式,這些函式可以在列上或在聚合函式中獨立使用,如下所示:

# 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、使用者自定義函式

我們自己編寫的函式是使用者自定義函式。我們可以在需要時透過呼叫該函式來執行這些函式中的程式碼。例如,我們可以建立一個函式來新增 2 個數字,如下所示:

# 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 是將一列行內的唯一值轉換為多個新列,這是很棒的資料處理技術。

在 Covid-19 資料集上使用 pivot_table() 函式,我們可以將國家名稱轉換為單獨的新列:

# 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、遍歷資料框

很多時候需要遍歷資料框的索引和行,我們可以使用 iterrows 函式遍歷資料框:

# 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、字串操作

很多時候我們處理資料集中的字串列,在這種情況下,瞭解一些基本的字串操作很重要。

例如如何將字串轉換為大寫、小寫以及如何找到字串的長度。

# 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()

文章轉載於公眾號小數志

文章連結:https://mp.weixin.qq.com/s/6moRIclOIFWPLhQ9OoFyew

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。各位也可以關注我的Facebook,按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!期待你與我互動起來~

文章推薦

《 Python 進階 》中文版(附下載)

Python中幾個有趣的函式

如何識別商業資料報告中的假資料

統計學上的四種錯誤

為何大公司高薪挖人,也很難挖走這家科技公司的員工?

--

--

數據分析那些事
數據分析那些事

Written by 數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/

No responses yet