簡直了,竟然只需十分鐘就能完全掌握Python pandas

簡直了,竟然只需十分鐘就能完全掌握Python pandas

Pandas是數據處理和數據分析中最流行的Python庫。本文將為大家介紹一些有用的Pandas信息,介紹如何使用Pandas的不同函數進行數據探索和操作。 包括如何導入數據集以及瀏覽,選擇,清理,索引,合併和導出數據等常用操作的函數使用,這是一個很好的快速入門指南,如果你已經學習過pandas,那麼這將是一個不錯的複習。

簡直了,竟然只需十分鐘就能完全掌握Python pandas

pandas導入與設置

一般在使用pandas時,我們先導入pandas庫。

import pandas as pd

pandas在默認情況下,如果數據集中有很多列,則並非所有列都會顯示在輸出顯示中。 您可以使用以下代碼行來設置輸出顯示中的列數:

pd.set_option('display.max_columns', 500)

500表示列的最大寬度。 也就是說,500意味著在調用數據幀時最多可以顯示500列。 默認值僅為50。此外,如果想要擴展輸顯示的行數。 可以通過如下代碼進行設置:

pd.set_option('display.max_rows', 500)

讀取數據集

導入數據是開始的第一步,使用pandas可以很方便的讀取excel數據或者csv數據,使用代碼如下:

pd.read_csv("Soils.csv")

pd.read_excel("Soils.xlsx")

在括號內 "Soils.csv"是上傳的數據文件名,一般如果數據文件不在當前工作路徑,則需要加上路徑信息。如果讀取的文件沒有列名,需要在程序中設置header,舉例如下:

pd.read_csv("Soils.csv",header=None)

如果碰巧數據集中有日期時間類型的列,那麼就需要在括號內設置參數parse_dates = [column_name],以便Pandas可以將該列識別為日期。 例如,如果數據集中有一個名為Collection_Date的日期列,則讀取代碼如下:

pd.read_excel("Soils.xls", parse_dates = ['Collection_Date'])

以下是成功導入後的數據預覽。

探索DataFrame

以下是查看數據信息的5個最常用的函數:

df.head():默認返回數據集的前5行,可以在括號中更改返回的行數。 示例: df.head(10)將返回10行。

df.tail():返回數據集的最後5行。同樣可以在括號中更改返回的行數。

df.shape:返回表示維度的元組。 例如輸出(48,14)表示48行14列。

df.info():提供數據摘要,包括索引數據類型,列數據類型,非空值和內存使用情況。

df.describe():提供描述性統計數據。

統計某列數據信息

以下是一些用來查看數據某一列信息的幾個函數:

df['Contour'].value_counts() : 返回計算列中每個值出現次數。

df['Contour'].isnull().sum():返回'Contour'列中的空值計數

df['pH'].notnull().sum():返回“pH”列中非空值的計數

df['Depth'].unique():返回'Depth'列中的唯一值

df.columns:返回所有列的名稱

選擇數據

列選擇:如果只想選擇一列,可以使用df['Group']. 這裡'Group'是列名。

要選擇多個列,可以使用df[['Group', 'Contour', 'Depth']]。

子集選擇/索引:如果要選擇特定的子集,我們可以使用.loc或.iloc方法。 基本使用方法如下:

df.loc[:,['Contour']]:選擇'Contour'列的所有數據。 其中單冒號:選擇所有行。 在逗號的左側,您可以指定所需的行,並在逗號的右側指定列。

df.loc[0:4,['Contour']]:選擇“Contour”列的0到4行。

df.iloc[:,2]:選擇第二列的所有數據。

df.iloc[3,:]:選擇第三行的所有數據。

簡直了,竟然只需十分鐘就能完全掌握Python pandas

數據清洗

數據清洗是數據處理一個繞不過去的坎,通常我們收集到的數據都是不完整的,缺失值、異常值等等都是需要我們處理的,Pandas中給我們提供了多個數據清洗的函數。

數值替換

df.replace({'Topk': 'Top'}, inplace=True)

刪除空值

df['pH'].dropna(inplace=True)

輸入空值

df['pH'].fillna(df['pH'].mean(), inplace=True) #nulls are imputed with mean of pH column

刪除行和列

df.drop(columns = ['Na'], inplace = True) #This drops the 'Na' column

df.drop(2, axis=0, inplace=True) #This drops the row at index 2

值得注意的是,axis = 0表示刪除行。 您可以使用axis = 1來刪除列。

更改列名稱

df.rename(columns = {'Conduc' : 'Cond', 'Dens' : 'Density'}, inplace = True)

數據處理

您可以使用.apply在數據.apply的行或列中應用函數。 下面的代碼將平方根應用於“Cond”列中的所有值。

df['Cond'].apply(np.sqrt)

數據分組

有時我們需要將數據分組來更好地觀察數據間的差異。Pandas中提供以下幾種方式對數據進行分組。 下面的示例按“Contour”列對數據進行分組,並計算“Ca”列中記錄的平均值,總和或計數。

df.groupby(by=['Contour'])['Ca'].mean()

df.groupby(by=['Contour'])['Ca'].count()

df.groupby(by=['Contour'])['Ca'].sum()

也可以按多列進行數據分組。

df.groupby(by=['Contour', 'Gp'])['Ca'].mean()

合併多個DataFrame

將兩個數據合併在一起有兩種方法,即concat和merge。Concat適用於堆疊多個數據幀的行。

按列連接數據

pd.concat([df, df2], axis=1)

按行連接數據

pd.concat([df, df2], axis=0)

當您的數據幀之間有公共列時,合併適用於組合數據幀。

合併數據

pd.merge(df, df2, left_on='Contour', right_on='Contour', how='outer')

數據保存

在完成數據清洗後,就需要將數據輸出到csv或excel文件中保存。如果要將數據輸出到由製表符分隔的csv文件,請使用以下代碼。 ''表示您希望它以製表符分隔。

df.to_csv('myDataFrame.csv', sep='')

輸出到excel:

writer = pd.ExcelWriter('myDataFrame.xlsx')

df.to_excel(writer,'DataFrame')

writer.save()

文末福利

很多讀者私信我說缺少Python的視頻教程,今天小編用了一整天的時間整理了400集Python的視頻教程出來,現在免費分享給各位讀者朋友,附贈一些Python學習書籍PDF版

領取書籍和400集python視頻教程的方式:

2、私信小編:“學習”就可以免費領取啦

視頻教程部分截圖:

簡直了,竟然只需十分鐘就能完全掌握Python pandas

簡直了,竟然只需十分鐘就能完全掌握Python pandas

書籍資料部分截圖:

簡直了,竟然只需十分鐘就能完全掌握Python pandas

簡直了,竟然只需十分鐘就能完全掌握Python pandas


分享到:


相關文章: