Python进行数据提取的方法总结,关于numpy,pandas

转:Python进行数据提取的方法总结,关于numpy,pandas

http://bluewhale.cc/2016-08-22/data-extraction-using-python.html

 原文更新时间:2016年08月22日 09:06:00 

数据提取是分析师日常工作中经常遇到的需求。如某个用户的贷款金额,某个月或季度的利息总收入,某个特定时间段的贷款金额和笔数,大于5000元的贷款数量等等。本篇文章介绍如何通过python按特定的维度或条件对数据进行提取,完成数据提取需求。

 

准备工作

首先是准备工作,导入需要使用的库,读取并创建数据表取名为loandata。

1

2

3

import numpy as np

import pandas as pd

loandata=pd.DataFrame(pd.read_excel('loan_data.xlsx'))

设置索引字段

在开始提取数据前,先将member_id列设置为索引字段。然后开始提取数据。

1

Loandata = loandata.set_index('member_id')

按行提取信息

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

1

loandata.ix[1303503]

按列提取信息

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

1

loandata.ix[:,'emp_length']

按行与列提取信息

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

1

loandata.ix[1303503,'emp_length']

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

1

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

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

1

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

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

1

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

多个列的查询也可以进行求和计算,在前面的代码后增加sum函数,对这个用户的贷款金额和年收入两个字段求和,并显示出结果。

1

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

提取特定日期的信息

数据提取中还有一种很常见的需求就是按日期维度对数据进行汇总和提取,如按月,季度的汇总数据提取和按特定时间段的数据提取等等。

设置索引字段

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

1

loandata = loandata.set_index('issue_d')

按日期提取信息

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

1

loandata['2016']

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

1

loandata['2016-03']

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

1

loandata['2016-06-16']


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

1

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

按日期汇总信息

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

1

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

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

1

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

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

1

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

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

1

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

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

1

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

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

1

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

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

1

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

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

1

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

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

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

 

总结

以上就是利用python按特定的维度或条件对数据进行提取的全部内容,希望本文的内容对大家学习使用Python能有所帮助。

您可能感兴趣的文章:

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Python 中,可以使用 numpypandas 这两个库来进行股票数据分析。 使用 numpy: - 你可以使用 numpy 的 loadtxt() 函数来读取股票数据文件,例如 CSV 文件。 使用 pandas: - 你可以使用 pandas 的 read_csv() 函数来读取股票数据文件,例如 CSV 文件。 - 你还可以使用 pandas 的 DataFrame 类型来存储和处理股票数据。 DataFrame 可以被看作是一个二维表格,其中包含多行和多列。你可以使用类似于 Excel 的方式来访问和操作 DataFrame 中的数据。 例如,你可以使用以下代码来读取 CSV 文件并将其存储在 DataFrame 中: ``` import pandas as pd df = pd.read_csv('stock_data.csv') ``` 然后,你可以使用 DataFrame 的各种方法提取和处理数据,例如: - df.head() 可以显示 DataFrame 的前几行 - df.tail() 可以显示 DataFrame 的后几行 - df['column_name'] 可以访问 DataFrame 中的某一列 - df.describe() 可以计算 DataFrame 中数型列的统计信息 有关使用 numpypandas 进行股票数据分析的更多信息,你可以参考官方文档或搜索在线教程。 ### 回答2: 对于numpypandas库而言,在Python进行股票数据分析时,可以使用它们来提取数据。 首先,numpy是一个强大的数学库,可以在Python进行计算和矩阵运算。在股票数据分析中,可以使用numpy库中的函数来处理和计算一维或多维数组。例如,可以使用numpy中的函数来计算收盘价的平均、最大、最小等统计指标。此外,numpy提供了一些方便的函数来处理缺失数据排序以及数组的拼接和切片等操作,这些功能对于股票数据分析非常有用。 其次,pandas是一个数据处理和分析库,它建立在numpy的基础上,提供了更高级的数据结构和功能,可以用于更方便地操作和分析股票数据pandas的主要数据结构是DataFrame,它类似于Excel中的一张表,可以方便地存储和处理二维数据。在股票数据分析中,可以使用pandas来读取和处理CSV或Excel格式的股票数据文件,将数据转化为DataFrame的形式进行分析。通过pandas,可以方便地进行数据过滤、排序、分组和计算等操作,同时还可以使用pandas的时间序列功能来处理和分析时间相关的股票数据总结来说,numpypandasPython中常用的数据处理和分析库,在股票数据分析中,可以通过numpy进行一些数计算和数组操作,而pandas则更适用于读取、处理和分析股票数据,提供了丰富的功能和数据结构来便于进行数据分析和监视。使用这两个库可以方便地提取和处理股票数据,进而进行更深入的数据分析和决策。 ### 回答3: 在使用numpypandas进行股票数据分析时,可以通过几种方式提取数据。 首先,可以使用numpypandas的基本操作方法,如切片、索引和过滤来提取数据。比如,使用切片操作可以按照时间范围来提取特定的股票数据,或者按照股票代码提取特定股票的数据。通过使用索引,可以提取指定列或行的数据,如提取收盘价、成交量等特定的指标数据。 其次,numpypandas提供了一些高级功能,如函数和方法,可以帮助更灵活地提取数据。例如,可以使用pandas的groupby函数按照特定的条件对数据进行分组,并计算分组后的统计指标。另外,numpypandas还提供了一些时间序列分析的方法,如滚动窗口函数rolling和指数加权移动平均函数ewm,可以用来提取特定时间段的数据进行分析。 此外,如果需要从外部数据源获取股票数据,可以使用pandas的read_csv函数读取csv文件,或者使用pandas-datareader库向在线数据接口请求股票数据。 综上所述,使用numpypandas进行股票数据分析时,可以利用基本操作和高级功能来提取和处理数据,以满足不同的需求。这些工具的强大功能和灵活性使得股票数据分析更加方便和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值