データ抽出用の Python

Feb 25, 2017 am 10:38 AM

データ抽出は、アナリストが日常業務で頻繁に遭遇する要件です。特定のユーザーの融資額、特定の月または四半期の総利息収入、一定期間の融資金額と件数、5,000元を超える融資件数など。この記事では、Python を使用して特定のディメンションまたは条件に従ってデータを抽出し、データ抽出要件を完了する方法を紹介します。

準備

最初のステップは、使用する必要のあるライブラリを準備し、インポートし、loandata という名前のデータテーブルを読み取り、作成することです。

import numpy as np
import pandas as pd
loandata=pd.DataFrame(pd.read_excel('loan_data.xlsx'))
ログイン後にコピー

データ抽出用の Python

インデックスフィールドの設定

データの抽出を開始する前に、member_id 列をインデックス フィールドとして設定します。次に、データの抽出を開始します。 member_id列设置为索引字段。然后开始提取数据。

Loandata = loandata.set_index('member_id')
ログイン後にコピー

データ抽出用の Python

按行提取信息

第一步是按行提取数据,例如提取某个用户的信息。下面使用ix函数对member_id为1303503的用户信息进行了提取。

loandata.ix[1303503]
ログイン後にコピー

データ抽出用の Python

按列提取信息

第二步是按列提取数据,例如提取用户工作年限列的所有信息,下面是具体的代码和提取结果,显示了所有用户的工作年龄信息。

loandata.ix[:,'emp_length']
ログイン後にコピー

データ抽出用の Python

按行与列提取信息

第三步是按行和列提取信息,把前面两部的查询条件放在一起,查询特定用户的特定信息,下面是查询member_id为1303503的用户的emp_length信息。

loandata.ix[1303503,'emp_length']
ログイン後にコピー

データ抽出用の Python

在前面的基础上继续增加条件,增加一行同时查询两个特定用户的贷款金额信息。具体代码和查询结果如下。结果中分别列出了两个用户的代码金额。

loandata.ix[[1303503,1298717],'loan_amnt']
ログイン後にコピー

データ抽出用の Python

在前面的代码后增加sum函数,对结果进行求和,同样是查询两个特定用户的贷款进行,下面的结果中直接给出了贷款金额的汇总值。

loandata.ix[[1303503,1298717],'loan_amnt'].sum()
ログイン後にコピー

データ抽出用の Python

除了增加行的查询条件以外,还可以增加列的查询条件,下面的代码中查询了一个特定用户的贷款金额和年收入情况,结果中分别显示了这两个字段的结果。

loandata.ix[1303503,['loan_amnt','annual_inc']]
ログイン後にコピー

データ抽出用の Python

多个列的查询也可以进行求和计算,在前面的代码后增加sum

loandata.ix[1303503,['loan_amnt','annual_inc']].sum()
ログイン後にコピー

データ抽出用の Python

データ抽出用の Python
行ごとに情報を抽出する

最初のステップは、ユーザーに関する情報を抽出するなど、行ごとにデータを抽出することです。以下では、ix 関数を使用して、member_id のユーザー情報 (1303503) を抽出します。

loandata = loandata.set_index('issue_d')
ログイン後にコピー
ログイン後にコピー


データ抽出用の Python🎜🎜🎜🎜列ごとに情報を抽出します🎜🎜🎜🎜🎜 2 番目のステップは、列ごとにデータを抽出することです。たとえば、ユーザーの作業内のすべての情報を抽出します。特定のコードと抽出結果には、すべてのユーザーの労働年齢情報が表示されます。 🎜🎜🎜
loandata['2016']
ログイン後にコピー
ログイン後にコピー
🎜🎜🎜データ抽出用の Python🎜🎜🎜🎜行と列で情報を抽出する🎜🎜🎜🎜🎜 3 番目のステップは、行と列で情報を抽出することです。最初のステップにクエリ条件を入れます。 2 つの部分を合わせて、特定のユーザーの特定の情報をクエリします。 以下は、member_id が 1303503 のユーザーの emp_length 情報をクエリします。 🎜🎜🎜
loandata['2016-03']
ログイン後にコピー
ログイン後にコピー
🎜🎜🎜データ抽出用の Python🎜🎜 前の条件に基づいて条件を追加し、特定の 2 人のユーザーのローン金額情報を同時にクエリする行を追加します。具体的なコードとクエリ結果は以下の通りです。両方のユーザーのコード量が結果に個別にリストされます。 🎜🎜🎜🎜
loandata['2016-06-16']
ログイン後にコピー
ログイン後にコピー
🎜🎜🎜データ抽出用の Python🎜🎜前のコードの後に​​ sum 関数を追加して、結果を合計し、2 人の特定のユーザーのローンをクエリします。融資額の要約値は、以下の結果に直接表示されます。 🎜🎜🎜🎜
loandata['2016-01':'2016-05']
ログイン後にコピー
ログイン後にコピー
🎜🎜🎜データ抽出用の Python🎜🎜行のクエリ条件を追加するだけでなく、列のクエリ条件も追加できます。次のコードは、特定のユーザーのローン金額と年収をクエリします。この場合、これら 2 つのフィールドの結果は結果に別々に表示されます。 🎜🎜🎜
loandata.resample('W',how=sum).head(10)
ログイン後にコピー
ログイン後にコピー
🎜🎜🎜データ抽出用の Python🎜🎜複数の列のクエリは合計によって計算することもできます。前のコードの後に​​ sum 関数を追加して、合計の計算を実行します。このユーザーの場合、融資額と年収の 2 つのフィールドが合計され、結果が表示されます。 🎜🎜🎜🎜
loandata.resample('M',how=sum)
ログイン後にコピー
ログイン後にコピー
🎜🎜🎜🎜🎜🎜🎜🎜🎜特定の日付の情報を抽出する🎜🎜🎜🎜🎜データ抽出におけるもう 1 つの非常に一般的な要件は、月別、四半期別などの日付ディメンションごとにデータを要約して抽出することです。抽出や特定期間ごとのデータ抽出など。 🎜🎜

设置索引字段

首先将索引字段改为数据表中的日期字段,这里将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中文网!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

人気のあるPythonライブラリとその用途は何ですか? 人気のあるPythonライブラリとその用途は何ですか? Mar 21, 2025 pm 06:46 PM

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

正規表現とは何ですか? 正規表現とは何ですか? Mar 20, 2025 pm 06:25 PM

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

See all articles