作者|RAM DEWANI
編譯|VK
來源|Analytics Vidhya
介紹
效率已成為及時完成作業的關鍵因素,一個人不應該花超過合理的時間去完成事情,尤其是當任務涉及基本編碼時,使用Pandas庫能節省你的時間,

Pandas是一個開源包,它有助于用Python語言執行資料分析和資料操作,此外,它還為我們提供了靈活的資料結構,
目錄
-
Pandas技巧1–行的條件選擇
-
Pandas技巧2–資料的存盤
-
Pandas技巧3–分組資料
-
Pandas技巧4–Pandas map
-
Pandas技巧5–Pandas DataFrame的條件格式化
Pandas技巧1–行的條件選擇
首先,資料探索是必要步驟,Pandas為進行各種分析提供了一種快速簡便的方法,其中一個非常重要的技巧是根據條件選擇行或過濾資料,
行的條件選擇可以基于由邏輯運算子分隔的單個陳述句中的單個條件或多個條件,
例如,我使用一個關于貸款預測的資料集,
我們將挑選一排還沒有畢業、收入低于5400英鎊的客戶,讓我們看看我們該怎么做,
視頻:https://youtu.be/hc4or_RF5M8
import pandas as pd
data = https://www.cnblogs.com/panchuangai/p/pd.read_csv('../Data/loan_train.csv')
data.head()
data2 = data.loc[(data['Education'] == 'Not Graduate') & (data['ApplicantIncome'] <= 5400)]
data2
注意:記住把每個條件放在括號內,
Pandas技巧2–資料的存盤
資料可以有兩種型別-連續的和離散的,這取決于我們的分析要求,有時我們不需要連續變數中的精確值,但需要它所屬的群體,
例如,你的資料中有一個連續變數,年齡,但你需要一個年齡組來進行分析,比如兒童、青少年、成人、老年人,實際上,Binning非常適合解決我們這里的問題,
為了執行Binning,我們使用cut()函式,這對于從連續變數到離散變數非常有用,
視頻:https://youtu.be/WQagYXIFjns
import pandas as pd
df = pd.read_csv('titanic.csv')
from sklearn.utils import shuffle
# 隨機化
df = shuffle(df, random_state = 42)
df.head()
bins = [0,4,17,65,99]
labels =['Toddler','Child','Adult','Elderly']
category = pd.cut(df['Age'], bins = bins, labels = labels)
df.insert(2, 'Age Group', category)
df.head()
df['Age Group'].value_counts()
df.isnull().sum()
代碼:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/binning_data.ipynb
Pandas技巧3–分組資料
這種操作在資料科學家和分析師的日常生活中經常執行,Pandas提供了一個基本的函式來執行資料分組,即Groupby,
Groupby操作包括根據特定條件拆分物件,應用函式,然后組合結果,
讓我們再看一次貸款預測資料集,假設我想看看給來自不同財產領域的人的平均貸款額,比如農村、半城市和城市,花點時間來理解這個問題陳述并思考如何解決它,
嗯,Pandas的groupby可以非常有效地解決這個問題,首先根據屬性區域劃分資料,其次,我們將mean()函式應用于每個類別,最后,我們將它們組合在一起,并將其列印為新的資料幀,
視頻:https://youtu.be/fK-6ZlPvZYU
#匯入資料集
import pandas as pd
df = pd.read_csv('../Data/loan_train.csv')
df.head()
# 男女平均收入
df.groupby(['Gender'])[['ApplicantIncome']].mean()
# 平均貸款金額不同的財產地區,如城市,農村
df.groupby(['Property_Area'])[['LoanAmount']].mean()
# 比較不同教育背景的貸款狀況
df.groupby(['Education'])[['Loan_Status']].count()
代碼:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/groupby_in_pandas.ipynb
Pandas技巧4–Pandas map
map是另一個提供高度靈活性和實際應用的重要操作,
Pandas map()用于根據輸入對應關系將序列中的每個值映射到其他值,實際上,這個輸入可以是一個序列、字典,甚至是一個函式,
讓我們舉一個有趣的例子,我們有一個虛擬的雇員資料集,此資料集由以下列組成–姓名、年齡、職業、城市,
現在需要添加另一列,說明相應的狀態,你會怎么做?如果資料集的范圍是10行,你可以手動執行,但是如果有數千行呢?使用Pandas map會更有利,
視頻:https://youtu.be/XkwQOy5RZWY
#樣本資料
data = https://www.cnblogs.com/panchuangai/p/{'name': ['A', 'B', 'C', 'D', 'E'],
'age': [22, 26, 33, 44, 50],
'profession' : ['data engineer', 'data scientist', 'entrepreneur', 'business analyst', 'self-employed'],
'city': ['Gurgaon', 'Bangalore', 'Gurgaon', 'Pune', 'New Delhi']}
df = pd.DataFrame(data)
df
# 城市與州
map_city_to_states = { 'Gurgaon' : 'Haryana',
'Bangalore' : 'Karnataka',
'Pune' : 'Maharashtra',
'New Delhi' : 'Delhi'}
# 將城市列映射為州
df['state'] = df['city'].map(map_city_to_states)
df
代碼:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/map python.ipynb
Pandas技巧5–Pandas DataFrame的條件格式化
這是我最喜歡的Pandas技巧之一,這個技巧讓我有能力直觀地定位特定條件下的資料,
可以使用Pandas的style屬性將條件格式應用于資料框,事實上,條件格式是根據某種條件對資料幀應用視覺樣式的操作,
雖然Pandas提供了大量的操作,但我將在這里向你展示一個簡單的操作,例如,我們有對應于每個銷售人員的銷售資料,我想查看的是銷售價值高于80的,
視頻:https://youtu.be/vuirWysk_BA
import pandas as pd
data = https://www.cnblogs.com/panchuangai/p/pd.read_excel("../Data/salesman_performance.xlsx")
data
data.style
def highlight_green(sales):
color = 'green' if sales > 80 else 'black'
return 'color: %s' % color
formatting = data.iloc[:,1:6].style.applymap(highlight_green)
formatting
代碼:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/Pandas_conditional_formatting.ipynb
結尾
在這篇文章中,我們總結了Pandas的5個技巧,我希望這些技巧能幫助你完成日常的任務,并為你節省很多時間,
原文鏈接:https://www.analyticsvidhya.com/blog/2020/07/5-striking-pandas-tips-and-tricks-for-analysts-and-data-scientists/
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方檔案:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/195348.html
標籤:其他
