掌握 Pandas:下一個項目的重要 Pandas 函數
已發表: 2020-11-30Pandas 庫一直是所有數據科學家或分析師的最愛,因為它易於使用、功能廣泛且對結果的更好解釋。 建議任何開始數據科學之旅的人對 pandas 有很好的掌握,提出管道以減少清理和預處理數據的手動工作量。
Pandas 建立在 Numpy 之上,可以更快地執行命令並在更短的時間內完成工作。 在本文中,我們將分享一些被低估的 pandas 函數,它們可以豐富您的項目的代碼質量。
在繼續之前,這裡有一個簡短的傳說:
- 提到的所有命令都假設數據框被命名為“df”,它是 pd.DataFrame() 的一個對象
- Pandas 庫已作為“pd”的別名導入。
目錄
字符串訪問器
字符串或文本數據是數據集的主要部分。 無論是與作者、書名、書籍出版相關的信息,還是為特定主題標籤製作的推文,我們都有大量文本數據,這些數據在適當清理後會派上用場,並提供給任何分類器,如樸素貝葉斯等. 這裡有一些你可以應用的技巧:
- 要訪問字符串類型數據,請使用“str”訪問器。 例如,df['column_name'].str
- 這使得對所選列執行所有字符串操作成為可能。
- 一些常見的操作包括,
- df['column_name'].str.len(): 每個字符串的長度
- .str.split():在特定字符處分割
- .str.contains():返回關於特定單詞是否存在於字符串中的 T/F
- .str.count():返回滿足傳遞的正則表達式的行數。
- .str.findall():返回與傳遞的表達式匹配的結果。
- .str.replace():與 findall 相同,但此處匹配項的替換發生
- 支持所有字符串操作,例如 .title、.isalpha、.isalnum、.isdecimal 等。
另請閱讀:Pandas Dataframe Astype
日期時間訪問器
日期和時間通常以時間戳、開始時間、結束時間或與該事件相關的任何其他時間的形式存在於數據集中。 正確解析這些數據很有用,因為它可以沿時間線提供趨勢,可以用來預測未來事件,或者我們將其稱為時間序列分析。 讓我們看看一些有用的命令:
- 要訪問 DateTime 數據,請使用 pd.to_datetime() 函數將當前數據類型(日期值解析為字符串或對象)轉換為 DateTime。
- 現在,使用“.dt”訪問器,我們可以訪問所需的任何日期時間信息,例如:
- df['column_name'].dt.day:返回日期的天數。
- .dt.time:時間
- .dt.year:日期的年份
- .dt.month:日期的月份
- .dt.weekday:無論是星期日、星期一……,數字形式,其中0代表星期一。 如果您想要日期名稱,請使用 .dt.day_name
- .dt.is_month_start:根據日期是否為月初返回 T/F。
- .dt.is_month_end 與month_start 功能相同,但此處驗證了該月的最後一個日期。
- .dt.quater:返回日期所在的季度
- .dt.is_quater_start:返回 T/F 日期是否為季度的第一天
- .dt.is_quater_end:是否是季度的最後一天
- .dt.normalize:當時間分量對分析沒有增加有價值的貢獻時,可以忽略。 此命令將時間四捨五入到午夜,即 00:00:00。
熊貓繪圖
繪圖可視化是數據分析的關鍵組成部分之一,在執行特徵工程時起著重要作用。 例如,可以使用表示中位數和四分位數範圍的箱線圖來檢測數據集中的異常值,而將異常值留在最末端。

繪圖主要是通過 seaborn、plotly、bokeh、matplotlib 等其他庫完成的,但是當您想要在不明確定義庫的情況下立即可視化數據時? 熊貓得到了解決方案。 使用 pd.plot() 函數,您可以直接繪製使用 matplotlib 在內部調用的圖形。 可用於此的各種選項:
- df.plot() 或 df['column_name'].plot() (取決於圖表的類型)
- df.plot() 具有定義圖形的參數“種類”。 默認情況下,它是一個“線”圖,但其他可用選項是“bar”、“barh”、“box”、“hist”、“kde”等。
- 它調用 matplotlib 後端,這意味著我們可以通過“ax”訪問器訪問它的參數。
- .plot() 函數還可以接受諸如“title”、“xticks”、“xlim”、“xlabel”、“fontsize”、“colormap”之類的參數,這在一定程度上消除了定義外部庫的需要。
雜項功能
- pd.get_dummies():在預處理數據時,有時我們會遇到需要將分類數據轉換為數字形式以輸入模型的情況。 當這些類別相當低時,首選單熱編碼,但手動執行此操作需要。 此虛擬函數不僅轉換值,而且如果 drop_first 設置為 True,則刪除包含所有類別的前一列。
- df.query():它是允許您在數據幀上應用條件掩碼的函數。 這與普通掩碼的基本區別在於,此函數直接返回值而不是布爾掩碼,從而減少了創建掩碼並將其應用於數據幀的工作量。
- df.select_dtypes():有時我們需要對一種數據類型執行一些特定的任務。 例如,在從外部文件讀取數據時,某些數據類型被定義為對象。 在清理數據時,數據集必須具有所有正確的數據類型,當此類數據類型的數量很大時,通過 df.astype('data-type') 手動執行會很繁瑣。 該函數選擇指定的數據類型,可以與 .apply() 函數結合使用。 示例代碼如下所示:
df.select_dtypes(object).apply(astype(str))
必讀:熊貓面試問題
結論
這種分配稱為鏈接,在執行數據科學任務時非常常見,以減少為要執行的每個步驟定義變量的工作量。
如果您想了解 Pandas,請查看 IIIT-B 和 upGrad 的數據科學 PG 文憑,該文憑專為在職專業人士而設,提供 10 多個案例研究和項目、實用的實踐研討會、行業專家指導、一對一-1 與行業導師,400 多個小時的學習和頂級公司的工作協助。
