Maison  >  Article  >  développement back-end  >  Python pour l'extraction de données

Python pour l'extraction de données

高洛峰
高洛峰original
2017-02-25 10:38:462513parcourir

L'extraction de données est une exigence à laquelle les analystes sont souvent confrontés dans leur travail quotidien. Par exemple, le montant du prêt d'un certain utilisateur, le revenu total d'intérêts au cours d'un certain mois ou trimestre, le montant et le nombre de prêts au cours d'une certaine période, le nombre de prêts supérieurs à 5 000 yuans, etc. Cet article explique comment extraire des données en fonction de dimensions ou de conditions spécifiques via Python pour répondre aux exigences d'extraction de données.

Travail de préparation

La première étape est un travail de préparation, importez les bibliothèques dont vous avez besoin, lisez et créez un tableau de données nommé prêtdonnées.

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

Python pour lextraction de données

Définir le champ d'index

Avant de commencer à extraire des données, définissez la colonne member_id comme champ d'index. Commencez ensuite à extraire les données.

Loandata = loandata.set_index('member_id')

Python pour lextraction de données

Extraire les informations par ligne

La première étape consiste à extraire les données par ligne, comme extraire les informations d'un utilisateur. Ce qui suit utilise la fonction ix pour extraire les informations utilisateur où member_id est 1303503.

loandata.ix[1303503]

Python pour lextraction de données

Extraire les informations par colonnes

La deuxième étape consiste à extraire les données par colonne, par exemple, extraire toutes les informations de la colonne d'âge de travail de l'utilisateur. Voici le code spécifique et les résultats de l'extraction, qui affichent les informations sur l'âge de travail de tous les utilisateurs.

loandata.ix[:,'emp_length']

Python pour lextraction de données

Extraire les informations par lignes et colonnes

La troisième étape consiste à extraire les informations par lignes et colonnes. Rassemblez les conditions de requête des deux parties précédentes pour interroger les informations spécifiques d'un utilisateur spécifique. Ce qui suit consiste à interroger l'utilisateur dont member_id est. 1303503emp_lengthinformations.

loandata.ix[1303503,'emp_length']

Python pour lextraction de données

Continuez à ajouter des conditions basées sur la précédente, et ajoutez une ligne pour interroger simultanément le montant du prêt de deux informations spécifiques aux utilisateurs. Le code spécifique et les résultats de la requête sont les suivants. Les montants de code pour les deux utilisateurs sont répertoriés séparément dans les résultats.

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

Python pour lextraction de données

Ajouter la fonction sum après le code précédent pour additionner les résultats, Le même la requête est effectuée pour les prêts de deux utilisateurs spécifiques. La valeur récapitulative du montant du prêt est directement donnée dans les résultats suivants.

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

Python pour lextraction de données

En plus d'ajouter des conditions de requête de ligne, vous pouvez également ajouter des conditions de requête de colonne, comme suit Le code interroge le montant du prêt et le revenu annuel d'un utilisateur spécifique, et les résultats de ces deux champs sont affichés respectivement.

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

Python pour lextraction de données

La requête de plusieurs colonnes peut également effectuer un calcul de somme, ajouter Fonction, additionnez les deux champs du montant du prêt et du revenu annuel de cet utilisateur, et affichez le résultat. sum

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

Python pour lextraction de données

Extraire des informations pour une date précise

Une autre exigence très courante dans l'extraction de données est de résumer et d'extraire les données par dimension de date, comme l'extraction de données récapitulatives mensuelles et trimestrielles et l'extraction de données par périodes spécifiques, etc.


设置索引字段

首先将索引字段改为数据表中的日期字段,这里将issue_d设置为数据表的索引字段。按日期进行查询和数据提取。

loandata = loandata.set_index('issue_d')

Python pour lextraction de données

按日期提取信息

下面的代码查询了所有2016年的数据。

loandata['2016']

Python pour lextraction de données

在前面代码的基础上增加月份,查询所有2016年3月的数据。

loandata['2016-03']

Python pour lextraction de données

继续在前面代码的基础上增加日期,查询所有2016年6月16日的数据。

loandata['2016-06-16']


Python pour lextraction de données

除了按单独日期查询以外,还可以按日期段进行数据查询,下面的代码中查询了所有2016年1月至5月的数据。下面显示了具体的查询结果,可以发现数据的日期都是在1-5月的,但是按日期维度显示的,这就需要我们对数据按月进行汇总。

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

Python pour lextraction de données

按日期汇总信息

Pandas中的resample函数可以完成日期的聚合工作,包括按小时维度,日期维度,月维度,季度及年的维度等等。下面我们分别说明。首先是按周的维度对前面数据表的数据进行求和。下面的代码中W表示聚合方式是按周,how表示数据的计算方式,默认是计算平均值,这里设置为sum,进行求和计算。

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

Python pour lextraction de données

将W改为M,数据变成了按月聚合的方式。计算方式依然是求和。这里需要说明的是resample函数会显示出所有连续的时间段,例如前面按周的聚合操作会显示连续的周日期,这里的按月操作则会在结果中显示连续的月,如果某个时间段没有数据,会以NaN值显示。

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

Python pour lextraction de données

将前面代码中的M改为Q,则为按季度对数据进行聚合,计算方式依然为求和。从下面的数据表中看,日期显示的都是每个季度的最后一天,如果希望以每个季度的第一天显示,可以改为QS。

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

Python pour lextraction de données

将前面代码中的Q改为A,就是按年对数据进行聚合,计算方式依然为求和。

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

Python pour lextraction de données

前面的方法都是对整个数据表进行聚合和求和操作,如果只需要对某一个字段的值进行聚合和求和,可以在数据表后增加列的名称。下面是将贷款金额字段按月聚合后求和,并用0填充空值。

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

Python pour lextraction de données

在前面代码的基础上再增加一个数值字段,并且在后面的计算方式中增加len用来计数。在下面的结果中分别对贷款金额和利息收入按月聚合,并进行求和和计数计算

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

Python pour lextraction de données

有时我们需要只对某一时间段的数据进行聚合和计算,下面的代码中对2016年1月至5月的数据按月进行了聚合,并计算求和。用0填充空值。

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

Python pour lextraction de données

或者只对某些符合条件的数据进行聚合和计算。下面的代码中对于贷款金额大于5000的按月进行聚合,并计算求和。空值以0进行填充。

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

Python pour lextraction de données

除了按周,月,季度和年以外,resample函数还可以按以下方式对日期进行聚合。

下面给出了具体的对应表和说明。

 Python pour lextraction de données

更多Python pour lextraction de données相关文章请关注PHP中文网!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn