> 백엔드 개발 > 파이썬 튜토리얼 > 데이터 추출을 위한 Python

데이터 추출을 위한 Python

高洛峰
풀어 주다: 2017-02-25 10:38:46
원래의
2543명이 탐색했습니다.

데이터 추출은 분석가가 일상 업무에서 자주 접하는 요구 사항입니다. 예를 들어 특정 사용자의 대출 금액, 특정 월 또는 분기의 총 이자 수입, 특정 기간의 대출 금액 및 건수, 5,000위안을 초과하는 대출 건수 등이 있습니다. 이 기사에서는 데이터 추출 요구 사항을 완료하기 위해 Python을 통해 특정 차원이나 조건에 따라 데이터를 추출하는 방법을 소개합니다.

준비 작업

첫 번째 단계는 준비 작업, 사용해야 하는 라이브러리를 가져오고 데이터 테이블을 읽고 생성하는 것입니다. 대출 데이터라는 이름이 붙었습니다.

아아앙

데이터 추출을 위한 Python

색인 필드 설정

데이터 추출을 시작하기 전에 member_id 열을 인덱스 필드로 설정하세요. 그런 다음 데이터 추출을 시작합니다.

아아앙

데이터 추출을 위한 Python

행별 정보 추출

첫 번째 단계는 사용자 정보 추출 등 행별 데이터 추출입니다. 다음은 ix 함수를 사용하여 member_id이 1303503인 사용자 정보를 추출합니다.

아아앙

데이터 추출을 위한 Python

열별 정보 추출

두 번째 단계는 열별 데이터 추출입니다. 예를 들어 사용자의 근로 연령 열의 모든 정보를 추출하면 다음은 전체 사용자의 근로 연령 정보를 표시하는 구체적인 코드와 추출 결과입니다.

아아앙

데이터 추출을 위한 Python

행과 열로 정보 추출

세 번째 단계는 행과 열별로 정보를 추출하는 것입니다. 처음 두 부분의 쿼리 조건을 함께 넣어 특정 사용자의 특정 정보를 쿼리합니다. member_id은 1303503입니다. emp_length

import numpy as np
import pandas as pd
loandata=pd.DataFrame(pd.read_excel('loan_data.xlsx'))
로그인 후 복사

데이터 추출을 위한 Python

이전 기준으로 계속해서 조건을 추가하고, 대출금액 정보를 조회하는 행을 추가합니다. 동시에 두 명의 특정 사용자를 대상으로 합니다. 구체적인 코드와 쿼리 결과는 다음과 같습니다. 두 사용자의 코드 금액은 결과에 별도로 나열됩니다.


Loandata = loandata.set_index('member_id')
로그인 후 복사

데이터 추출을 위한 Python

이전 코드 뒤에

함수를 추가하여 결과를 합산하고, 동일한 쿼리를 특정 사용자 2명의 대출에 대한 대출 금액의 요약 값은 다음과 같은 결과로 직접 제공됩니다. sum

loandata.ix[1303503]
로그인 후 복사

데이터 추출을 위한 Python

행에 대한 쿼리 조건 외에도 열에 대한 쿼리 조건도 추가할 수 있습니다. 다음 코드는 특정 사용자의 대출금액과 연소득을 조회하고, 이 두 필드의 결과를 결과에 표시합니다.

loandata.ix[:,'emp_length']
로그인 후 복사

데이터 추출을 위한 Python

이전 코드 sum 뒤에

함수를 추가하여 합계 계산을 수행할 수도 있습니다. 이 사용자의 대출 금액과 연간 소득의 두 필드를 선택하고 결과를 표시합니다. sum

rreee

데이터 추출을 위한 Python

특정 날짜의 정보 추출

데이터 추출에서 매우 흔한 또 다른 요구 사항은 월별, 분기별 요약 데이터 추출, 특정 기간별 데이터 추출 등 날짜 차원별로 데이터를 요약하고 추출하는 것입니다.


设置索引字段

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

loandata = loandata.set_index('issue_d')
로그인 후 복사

데이터 추출을 위한 Python

按日期提取信息

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

loandata['2016']
로그인 후 복사

데이터 추출을 위한 Python

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

loandata['2016-03']
로그인 후 복사

데이터 추출을 위한 Python

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

loandata['2016-06-16']
로그인 후 복사


데이터 추출을 위한 Python

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

loandata['2016-01':'2016-05']
로그인 후 복사

데이터 추출을 위한 Python

按日期汇总信息

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

loandata.resample('W',how=sum).head(10)
로그인 후 복사

데이터 추출을 위한 Python

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

loandata.resample('M',how=sum)
로그인 후 복사

데이터 추출을 위한 Python

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

loandata.resample('Q',how=sum)
로그인 후 복사

데이터 추출을 위한 Python

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

loandata.resample('A',how=sum)
로그인 후 복사

데이터 추출을 위한 Python

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

loandata['loan_amnt'].resample('M',how=sum).fillna(0)
로그인 후 복사

데이터 추출을 위한 Python

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

loandata[['loan_amnt','total_rec_int']].resample('M',how=[len,sum])
로그인 후 복사

데이터 추출을 위한 Python

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

loandata['2016-01':'2016-05'].resample('M',how=sum).fillna(0)
로그인 후 복사

데이터 추출을 위한 Python

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

loandata[loandata['loan_amnt']>5000].resample('M',how=sum).fillna(0)
로그인 후 복사

데이터 추출을 위한 Python

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

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

 데이터 추출을 위한 Python

更多데이터 추출을 위한 Python相关文章请关注PHP中文网!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿