PANDAS: 新手教程 一 - 人工智慧遇見磐創

2021-01-15 人工智慧遇見磐創

Pandas是一個強大的開源數據分析和操作庫。它可以幫助你對數據進行各種操作,並生成有關它的不同報告。我將把這篇文章分成兩篇

基本知識-我將在這個故事中介紹。我將介紹Pandas的基本功能,這些功能將使你大致了解如何開始使用Pandas,以及它如何幫助你節省大量時間。高級-將通過高級的功能,使它更容易解決複雜的分析問題。它將涵蓋的主題,如風格,繪圖,讀取多個文件等。第二部分仍在進行中,敬請期待。

在開始之前,確保你已經安裝了Pandas。如果沒有,你可以使用以下命令下載它。

# 如果你使用的是Anacondaconda install -c conda-forge pandas# 使用pip安裝Pandaspip install pandas# 導入pandasimport pandas as pd在這個練習中,我將使用著名的鐵達尼號數據集。我建議你從Github下載數據和notebook,將其複製到你的環境中:https://github.com/ankitgoel1602/data-science/tree/master/data-analysis/pandas

有關數據的更多詳細信息,請參閱Kaggle:https://www.kaggle.com/c/titanic/data?select=train.csv。

讓我們開始,我試圖保持數據分析的一般流程,比如從讀取數據開始,然後在數據分析過程中經歷不同的步驟。

1.使用read_csv或read_excel讀取數據

任何數據分析的起點都是獲取數據集。pandas提供不同的函數來讀取不同格式的數據。最常用的是

read_csv( )

這允許你讀取CSV文件。

pd.read_csv('path_to_your_csv_file.csv')panda提供了不同的選項來配置列名、數據類型或要讀取的行數。查看Pandas read_csv API了解更多詳細信息:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html。

read_excel( )

這允許你讀取Excel文件。

pd.read_excel('path_to_your_excel_file.xlsx')與CSV一樣,Pandas為read_excel提供了一組豐富的選項,允許你在excel中讀取特定的工作表名稱、數據類型或要讀取的行數。查看Pandas read_excel API了解更多詳細信息:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html

Pandas支持很多其他數據類型。如果你正在使用其他數據類型,請查看Pandas文檔:https://pandas.pydata.org/pandas-docs/stable/reference/io.html

讀取鐵達尼號數據集,我們將在這裡使用read_csv命令

# 你可以從提供的Github連結獲取它。# 將Titanic數據集加載到titanic_data中titanic_data = pd.read_csv('titanic_train.csv')這將創建一個Pandas數據幀(如表),並將其存儲到titanic_data中。

接下來,我們將了解如何獲取有關加載的數據的更多詳細信息。

2.使用head、tail或sample來探索數據。

一旦我們加載了數據,我們想回顧一下。panda提供了不同的api,我們可以使用它們來探索數據。

head( )

這類似於SQL中的TOP命令,從數據幀的開始給我們提供前'n'條記錄。

# 從數據幀中選擇前5(n=5)條記錄titanic_data.head(5)

tail( )

這給了我們數據幀末尾的「n」條記錄。

# 從數據幀中選擇最後5條(n=5)條記錄titanitc_data.tail(5)

sample( )

這將從數據中隨機獲取「n」個記錄。注意-此命令在不同運行時的輸出可能不同。

titanic_data.sample(5)

3.使用shape獲取數據維度

一旦我們有了數據,我們就需要知道我們要處理的行或列的數量,而Pandas的shape API提供的正是這些。讓我們看看

# dataframe的形狀,注意結尾沒有括號,因為它是dataframe的屬性titanic_data.shape(891, 12)4.使用info( )查看數據摘要

讓我們先看看這個的輸出

titanic_data.info()

正如你所看到的,「info」提供了一個很好的數據摘要,讓我們一個一個地了解它。

索引詳細信息-Pandas中的每個數據幀都有一個索引,如果你熟悉SQL,它就像是我們創建用來訪問數據的索引。這裡意味著我們有一個從0到890的範圍索引,即總共891行。「info」生成的表中的每一行都向我們提供了有關列的詳細信息、列中的值的數量以及pandas分配給它的數據類型。這對於了解缺失數據非常有用。例如我們可以說我們只有714行的「Age」數據。內存使用-Pandas將數據幀加載到內存中,這將告訴我們數據集使用了多少內存。當我們有大的數據集時,這就很方便了。pandas有一個特定的API「memory_usage」來獲得更多關於內存的信息。5.使用describe()的數據統計

這給了我們關於數據集的統計數據。如你所見,我們的數據幀如下所示

如你所見,它為每一列提供了許多信息,如記錄計數(不計算丟失的記錄,如年齡)、平均值、標準差、最小值和不同分位數百分比。默認情況下,此命令提供有關數值數據類型(如int或float)的信息。要獲取「object」列的統計信息,我們可以運行

# 顯示有關對象列的統計信息titanic_data.describe(include=['O'])

如果你注意到,我們在describe API中添加了'include'參數,它是一個列表,我們可以傳遞多個值,比如-

include=[『O』, 』int64']-將提供關於DataFrame中Object和int64類型列的統計信息。include=[『O』, 『float64』]-將提供關於DataFrame中Object和float64類型列的統計信息。與「include」類似,我們也可以使用「exclude」,它將在計算統計時排除列類型。如果你對更多細節感興趣,請參閱Pandas文檔:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html。

6.使用loc和iloc進行數據選擇

這些都是非常有用的函數,可以幫助我們選擇數據。使用這些我們可以選擇數據的任何部分。為了更好地理解它,讓我們更改數據的索引(如果你不理解,請不要擔心,我將在第2部分中討論)。

# 將數據幀的索引從RangeIndex更改為「Ticket」值titanic_ticket_index = titanic_data.set_index('Ticket')

loc( )

這將根據標籤(即列和行的名稱)選擇數據。例如,在上面的數據中,行標籤類似於A/5 21171, PC17599, 113803,列標籤類似於PassengerId, Survived, Sex。loc的一般語法是-

dataframe_name.loc[row_labels, column_labels(optional)]行標籤和列標籤可以採用不同的值。讓我們看一些例子來更好地理解它。

選擇單行

輸入你想要的行的標籤,即,如果我們想選擇'Ticket',其中的值是'A/5 21171'。

# 注意我們需要使用[]方括號# 這將返回與名稱匹配的行的數據。titanic_ticket_index.loc['A/5 21171']

選擇多行

很多時候,我們需要選擇多行,以便進一步分析。.loc API可以獲取要選擇的行標籤列表,即。

或者類似的

# 我們可以提供 start_label:end_label# 這裡我們選擇標籤為「PC 17599」到「373450」的行titanic_ticket_index.loc['PC 17599':'373450']

注意-如果多行具有相同的標籤,這將不起作用。

選擇單列

這與我們選擇行的方式類似,但是在選擇列時,我們需要告訴Pandas我們要選擇的行。我們可以用「:」代替行標籤,這意味著我們要選擇所有行。

# 為所有行選擇列。titanic_ticket_index.loc[:,'Embarked']

選擇多個列

與我們對多行所做的類似,只需要告訴Pandas我們正在選擇哪些行。

# 為所有行選擇Sex, Age, Fare, Embarked列 .titanic_ticket_index.loc[:,['Sex','Age','Fare','Embarked']]

或者類似的

# 我們可以提供start_label:end_label# 在這裡,我們選擇的列為 label 'Sex' 到 'Embarked'titanic_ticket_index.loc[:, 'Sex':'Embarked']

選擇特定的行和列

iloc()

這與loc類似,但基於索引而不是標籤選擇行和列。與標籤不同的是,索引總是從0開始,到第7行的數目是1,列的索引總是從0到第1列。

讓我們看一個例子

# 選擇特定的行和列:示例2# 對於列和行我們都可以用start_label:end_label# 選擇第3至第6行和第1至第4列# 結束索引應比所需的行或列大1titanic_ticket_index.iloc[3:7, 1:5]

在這裡,我們沒有像對「loc」那樣查看示例。如果你想知道我們是如何使用iloc實現同樣的結果的,你可以參考Github:https://github.com/ankitgoel1602/data-science/blob/master/data-analysis/pandas/pandas_basic_functions_overview.ipynb

7.在列中使用value_counts()獲取唯一值

Value_counts為我們提供列中唯一值的計數,這對於了解以下信息非常有用

列中有不同的值。最常見值。最頻繁值的比例。# Sex列的值計數。titanic_data['Sex'].value_counts()# 輸出male 577female 314Name: Sex, dtype: int64如你所見,我們的數據集包含了更多的男性。我們甚至可以將其標準化以查看值之間的分布。

# 為性別列計數並標準化titanic_data['Sex'].value_counts(normalize=True)#輸出male 0.647587female 0.352413Name: Sex, dtype: float64這意味著,在我們的數據集中,男性與女性的比例約為65:35。

8.使用query( )篩選數據

通常,我們使用難以分析的大型數據集。在這種情況下,策略是過濾不同條件下的數據並對其進行分析。我們只需使用Pandas查詢API的一行代碼就可以做到這一點。

讓我們舉幾個例子來更好地理解它。

選擇年齡>15的行。

# 前5個年齡大於15歲的記錄titanic_data.query('Age > 15').head(5)

選擇倖存的男性。

# 前5名倖存的男性titanic_data.query('Sex=="male" and Survived==1').head(5)

我們可以定義變量並使用它們來編寫過濾器查詢。當我們需要編寫腳本時,它會很方便。

# gender_to_select和min_fare,這些都可以作為參數的一部分傳遞給腳本gender_to_select = "female"min_fare = 50# 使用傳遞的屬性查詢titanic_data.query('(Sex==@gender_to_select) and (Fare > @min_fare)')

結論

我希望這篇文章能幫助你開始使用Pandas並簡化數據分析過程。如前所述,在本文中,我試圖涵蓋涉及數據分析過程不同領域的基本函數。我將繼續補充更多。

Pandas提供了許多不同的api,可以幫助對數據執行高級操作,如繪圖、風格等。我將在本系列的第2部分中介紹這些api。

相關焦點

  • PANDAS: 新手教程 一
    # 如果你使用的是Anacondaconda install -c conda-forge pandas# 使用pip安裝Pandaspip install pandas# 導入pandasimport pandas as pd在這個練習中,我將使用著名的鐵達尼號數據集。
  • NumPy簡潔教程 - 人工智慧遇見磐創
    創建NumPy數組基本的ndarray全零數組全一數組ndarray中的隨機數定製的數組NumPy的Imatrix等間距的ndarrayNumPy數組的形狀與重塑NumPy數組的維數NumPy數組的形狀NumPy數組的大小重塑NumPy數組展開NumPy數組NumPy數組的轉置擴展和壓縮一個NumPy數組展開NumPy數組壓縮NumPy數組NumPy數組的索引與切片一維數組的切片二維數組切片三維數組切片
  • 教程| pandas輕鬆入門 之 數據結構介紹 1
    訪問flyai.club,一鍵創建你的人工智慧項目Pandas含有使數據清洗和分析工作變得更快更簡單的數據結構和操作工具。pandas經常和其它工具一同使用,如數值計算工具NumPy和SciPy,分析庫statsmodels和scikit-learn,和數據可視化庫matplotlib。
  • 《warframe》新手教程
    導 讀 warframe新手教程,最近小編在玩steam的warframe,深感這遊戲對新手的不友好,遊戲的內容太多
  • pandas指南:做更高效的數據科學家
    如果你是Python新手,很難知道針對特定任務的包哪個是最好的。你需要有經驗的人來告訴你。今天我要告訴你們的是:在數據科學中,有一個軟體包是你們絕對需要學習的,那就是pandas。而pandas真正有趣的地方是,很多其他的包也在裡面。pandas是一個核心包,因此它具有來自其他各種包的特性。
  • 微軟再推免費在線 Python 教程,面向數據科學和機器學習初學者
    去年九月,微軟曾面向 Python 初學者,推出了一套免費的教程視頻。從基本介紹和 VS Code 的配置講起,循序漸進語法概念等基礎內容講解。目前為止,該系列視頻播放量已達到將近 180 萬次。近日,微軟在此基礎上,再度更新兩個針對 Python 初學者的系列教程,作為對之前教程的補充,或者說是進階。因此,這兩個新的系列面向的不完全是純粹的 Python 新手,而是對 Python 稍有了解,並可能有其他語言的編碼經驗的人。
  • 妄想山海新手怎麼玩 妄想山海新手教程
    妄想山海是一款新的遊戲,不少玩家想要下載體驗,那麼,作為新手玩家,需要注意一些什麼地方呢,新手怎麼玩呢,有沒有技巧呢,這是很多新手玩家關心的,新手攻略大全已經新鮮出爐,很多小夥伴想知道新手應該注意什麼問題,下面小編就為大家帶來了妄想山海最全新手技巧,一起來看看吧。
  • 動態二維碼製作新手入門教程
    剛給大家分享了一篇創意二維碼製作教程,今天再給大家分享一篇動態二維碼制製作的新手入門教程,算是上一篇二維碼製作教程的輔助篇。
  • 《無人深空》新手入門教程 新手入門玩法攻略
    導 讀 《無人深空》新手怎麼上手這款遊戲呢?不少萌新玩家都想知道,下面就為大家帶來無人深空新手入門教程,一起來看看。
  • 超詳細教程|pandas合併之append和concat(下)
    本篇文章主要介紹了pandas中對series和dataframe對象進行連接的方法:pd.append()和pd.concat(),文中通過示例代碼對這兩種方法進行了詳細的介紹,希望能對各位python小白的學習有所幫助。
  • 新手教程:抖音照片煙霧特效怎麼加上去的?
    18183首頁 新手教程:抖音照片煙霧特效怎麼加上去的? 新手教程:抖音照片煙霧特效怎麼加上去的?
  • 教程:新手向,對稱的刻線要怎麼做?
    那啥,這兩天的教程大家看的嗨不嗨?嗨之餘有很多粉絲的留言大體是這樣的:其實吧,我不缺這種做GK底模的補土或者材料……我缺的是一雙可以成為大佬的手眼睛:我看會了。手:你會個屁了。大……大佬!我改裝總做不到左右一致模型嘛玩的就是手藝和興趣,對於有新手還是鼓勵大家多多嘗試的,萬一一不小心就成大佬了呢?
  • 超詳細教程|pandas合併之append和concat(上)
    本系列文章主要介紹了pandas中對series和dataframe對象進行連接的方法:pd.append()和pd.concat(),文中通過示例代碼對這兩種方法進行了詳細的介紹,希望能對各位python小白的學習有所幫助。
  • 華夏睿磐泰盛定開混合 : 華夏睿磐泰盛混合型證券投資基金(原華...
    華夏睿磐泰盛定開混合 : 華夏睿磐泰盛混合型證券投資基金(原華夏睿磐泰盛六個月定期開放混合型證券投資基金)招募說明書(更新)2021年1月6日公告 時間:2021年01月06日 10:11:11&nbsp中財網 原標題:華夏睿磐泰盛定開混合 : 華夏睿磐泰盛混合型證券投資基金(原
  • 星界邊境攻略 新手教程+進階心得圖文攻略
    一打開遊戲是否有無從下手的感覺?其實,這是一款我的世界、打造世界、泰來瑞亞外加星際之間的集大成者,2D像素點風格+科幻背景沙盒遊戲。說白了點,本作主要就是一個星球的採礦建造、合成物品、獲得能源提供飛船動力,也正是以星球為背景,使得它具有無限可能和無限的生命力。下面請看小編帶給大家的星界邊境攻略,星界邊境怎麼玩新手教程+更深入的進階心得圖文攻略。
  • 如何通過一頓飯來說明NumPy與pandas的功用
    而在這股勢力中,其主角及成員便是NumPy、pandas、matplotlib以及scipy。本文要簡單介紹的則是主力中的主力:NumPy與pandas。誠然,R語言幾乎專注於統計分析,其第三方包無數,有著統計學的深度以及各學科統計分析應用的廣度,並且也在與Python的較量中不甘示弱。
  • 從小白到大師,這裡有一份Pandas入門指南
    這是一篇最佳實踐教程,既適合用過 Pandas 的讀者,也適合沒用過但想要上手的小白。通過本文,你將有望發現一到多種用 pandas 編碼的新方法。本文包括以下內容:Pandas 發展現狀;內存優化;索引;方法鏈;隨機提示。在閱讀本文時,我建議你閱讀每個你不了解的函數的文檔字符串(docstrings)。
  • AutoCAD2021練習圖1第2講, cad新手自學入門教程
    AutoCAD2021練習圖1第2講, cad新手自學入門教程 2020-11-29
  • 《上古捲軸5》MOD安裝新手教程 MOD怎麼安裝
    下面小編給大家帶來的是《上古捲軸5》MOD安裝新手教程,跟小編一起來看看吧。 第一步 首先應讓你的老滾五能加載MOD,具體方法我在之前的經驗上古捲軸5... 各位玩家知道《上古捲軸5》的MOD怎麼安裝嗎?下面小編給大家帶來的是《上古捲軸5》MOD安裝新手教程,跟小編一起來看看吧。
  • 發燒級玩家首選臺速磐科眼鏡蛇700
    作為國內知名的電源品牌,臺速磐科推出了針對發燒級玩家的高端產品---眼鏡蛇700,除了符合80PLUS銀牌認證之外,最重要的就是它是一款模組電源。   臺速磐科眼鏡蛇700電源採用黑色磨砂設計,穩重之餘不失個性。