Python進行資料提取的方法總結

Python進行資料提取的方法總結

準備工作

首先是準備工作,匯入需要使用的庫,讀取並建立資料表取名為loandata。


import numpy as np
import pandas as pd
loandata=pd.DataFrame(pd.read_excel('loan_data.xlsx'))

設定索引欄位

在開始提取資料前,先將member_id列設定為索引欄位。然後開始提取資料。


Loandata = loandata.set_index('member_id')

按行提取資訊

第一步是按行提取資料,例如提取某個使用者的資訊。下面使用ix函式對member_id為1303503的使用者資訊進行了提取。


loandata.ix[1303503]

按列提取資訊

第二步是按列提取資料,例如提取使用者工作年限列的所有資訊,下面是具體的程式碼和提取結果,顯示了所有使用者的工作年齡資訊。


loandata.ix[:,'emp_length']

按行與列提取資訊

第三步是按行和列提取資訊,把前面兩部的查詢條件放在一起,查詢特定使用者的特定資訊,下面是查詢member_id為1303503的使用者的emp_length資訊。


loandata.ix[1303503,'emp_length']

在前面的基礎上繼續增加條件,增加一行同時查詢兩個特定使用者的貸款金額資訊。具體程式碼和查詢結果如下。結果中分別列出了兩個使用者的程式碼金額。


loandata.ix[[1303503,1298717],'loan_amnt']

在前面的程式碼後增加sum函式,對結果進行求和,同樣是查詢兩個特定使用者的貸款進行,下面的結果中直接給出了貸款金額的彙總值。


loandata.ix[[1303503,1298717],'loan_amnt'].sum()

除了增加行的查詢條件以外,還可以增加列的查詢條件,下面的程式碼中查詢了一個特定使用者的貸款金額和年收入情況,結果中分別顯示了這兩個欄位的結果。


loandata.ix[1303503,['loan_amnt','annual_inc']]

多個列的查詢也可以進行求和計算,在前面的程式碼後增加sum函式,對這個使用者的貸款金額和年收入兩個欄位求和,並顯示出結果。


loandata.ix[1303503,['loan_amnt','annual_inc']].sum()

提取特定日期的資訊

資料提取中還有一種很常見的需求就是按日期維度對資料進行彙總和提取,如按月,季度的彙總資料提取和按特定時間段的資料提取等等。

設定索引欄位

首先將索引欄位改為資料表中的日期欄位,這裡將issue_d設定為資料表的索引欄位。按日期進行查詢和資料提取。


loandata = loandata.set_index('issue_d')

按日期提取資訊

下面的程式碼查詢了所有2016年的資料。


loandata['2016']

在前面程式碼的基礎上增加月份,查詢所有2016年3月的資料。


loandata['2016-03']

繼續在前面程式碼的基礎上增加日期,查詢所有2016年6月16日的資料。


loandata['2016-06-16']

除了按單獨日期查詢以外,還可以按日期段進行資料查詢,下面的程式碼中查詢了所有2016年1月至5月的資料。下面顯示了具體的查詢結果,可以發現資料的日期都是在1-5月的,但是按日期維度顯示的,這就需要我們對資料按月進行彙總。


loandata['2016-01':'2016-05']

按日期彙總資訊

Pandas中的resample函式可以完成日期的聚合工作,包括按小時維度,日期維度,月維度,季度及年的維度等等。下面我們分別說明。首先是按周的維度對前面資料表的資料進行求和。下面的程式碼中W表示聚合方式是按周,how表示資料的計算方式,預設是計算平均值,這裡設定為sum,進行求和計算。


loandata.resample('W',how=sum).head(10)

將W改為M,資料變成了按月聚合的方式。計算方式依然是求和。這裡需要說明的是resample函式會顯示出所有連續的時間段,例如前面按周的聚合操作會顯示連續的週日期,這裡的按月操作則會在結果中顯示連續的月,如果某個時間段沒有資料,會以NaN值顯示。


loandata.resample('M',how=sum)

將前面程式碼中的M改為Q,則為按季度對資料進行聚合,計算方式依然為求和。從下面的資料表中看,日期顯示的都是每個季度的最後一天,如果希望以每個季度的第一天顯示,可以改為QS。


loandata.resample('Q',how=sum)

將前面程式碼中的Q改為A,就是按年對資料進行聚合,計算方式依然為求和。


loandata.resample('A',how=sum)

前面的方法都是對整個資料表進行聚合和求和操作,如果只需要對某一個欄位的值進行聚合和求和,可以在資料表後增加列的名稱。下面是將貸款金額欄位按月聚合後求和,並用0填充空值。


loandata['loan_amnt'].resample('M',how=sum).fillna(0)

在前面程式碼的基礎上再增加一個數值欄位,並且在後面的計算方式中增加len用來計數。在下面的結果中分別對貸款金額和利息收入按月聚合,並進行求和和計數計算


loandata[['loan_amnt','total_rec_int']].resample('M',how=[len,sum])

有時我們需要只對某一時間段的資料進行聚合和計算,下面的程式碼中對2016年1月至5月的資料按月進行了聚合,並計算求和。用0填充空值。


loandata['2016-01':'2016-05'].resample('M',how=sum).fillna(0)

或者只對某些符合條件的資料進行聚合和計算。下面的程式碼中對於貸款金額大於5000的按月進行聚合,並計算求和。空值以0進行填充。


loandata[loandata['loan_amnt']>5000].resample('M',how=sum).fillna(0)

除了按周,月,季度和年以外,resample函式還可以按以下方式對日期進行聚合。

下面給出了具體的對應表和說明。

 

總結

以上就是利用python按特定的維度或條件對資料進行提取的全部內容,希望本文的內容對大家學習使用Python能有所幫助。

您可能感興趣的文章:

python使用xslt提取網頁資料的方法使用Python下的XSLT API進行web開發的簡單教程一個用xslt樣式將xml解析為xhtml的類TransformBinder(相容FF和IE7.0)用xslt將xml解析成xhtml的程式碼XSLT輕鬆入門第二章:XSLT的例項python提取字典key列表的方法Python實現從url中提取域名的幾種方法python利用正規表示式提取字串python使用正規表示式提取網頁URL的方法1分鐘快速生成用於網頁內容提取的xslt