您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關5個實用的Pandas技巧分別是哪些,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
作者|RAM DEWANI 編譯|VK 來源|Analytics Vidhya
效率已成為及時完成工作的關鍵因素。一個人不應該花超過合理的時間去完成事情。尤其是當任務涉及基本編碼時。使用Pandas庫能節省你的時間。
Pandas是一個開源包。它有助于用Python語言執行數據分析和數據操作。此外,它還為我們提供了靈活的數據結構。
Pandas技巧1–行的條件選擇
Pandas技巧2–數據的存儲
Pandas技巧3–分組數據
Pandas技巧4–Pandas map
Pandas技巧5–Pandas DataFrame的條件格式化
首先,數據探索是必要步驟。Pandas為進行各種分析提供了一種快速簡便的方法。其中一個非常重要的技巧是根據條件選擇行或過濾數據。
行的條件選擇可以基于由邏輯運算符分隔的單個語句中的單個條件或多個條件。
例如,我使用一個關于貸款預測的數據集。
我們將挑選一排還沒有畢業、收入低于5400英鎊的客戶。讓我們看看我們該怎么做。
視頻:https://youtu.be/hc4or_RF5M8
import pandas as pd data = pd.read_csv('../Data/loan_train.csv') data.head() data2 = data.loc[(data['Education'] == 'Not Graduate') & (data['ApplicantIncome'] <= 5400)] data2
注意:記住把每個條件放在括號內。
數據可以有兩種類型-連續的和離散的,這取決于我們的分析要求。有時我們不需要連續變量中的精確值,但需要它所屬的群體。
例如,你的數據中有一個連續變量,年齡。但你需要一個年齡組來進行分析,比如兒童、青少年、成人、老年人。實際上,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提供了一個基本的函數來執行數據分組,即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
map是另一個提供高度靈活性和實際應用的重要操作。
Pandas map()用于根據輸入對應關系將序列中的每個值映射到其他值。實際上,這個輸入可以是一個序列、字典,甚至是一個函數。
讓我們舉一個有趣的例子。我們有一個虛擬的雇員數據集。此數據集由以下列組成–姓名、年齡、職業、城市。
現在需要添加另一列,說明相應的狀態。你會怎么做?如果數據集的范圍是10行,你可以手動執行,但是如果有數千行呢?使用Pandas map會更有利。
視頻:https://youtu.be/XkwQOy5RZWY
#樣本數據 data = {'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%20python.ipynb
這是我最喜歡的Pandas技巧之一。這個技巧讓我有能力直觀地定位特定條件下的數據。
可以使用Pandas的style屬性將條件格式應用于數據框。事實上,條件格式是根據某種條件對數據幀應用視覺樣式的操作。
雖然Pandas提供了大量的操作,但我將在這里向你展示一個簡單的操作。例如,我們有對應于每個銷售人員的銷售數據。我想查看的是銷售價值高于80的。
import pandas as pd data = 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個技巧。
以上就是5個實用的Pandas技巧分別是哪些,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。