如何利用python进行数据分析统计服_数据分析师之如何使用Python进行数据规整

在我们的工作中,无论我们是什么岗位,总需要与数据打交道,少至几行的统计表,多到几千万、上亿条的记录。这么多复杂的数据需要进行处理,那么怎么进行数据规整呢?目前的数据规整主要集中在数据的重排、过滤、清理和其它转换工作。

那么,有一定规模的数据处理用什么呢,还是用python较为便捷。Python提供了较为方便的数据处理和计算的库pandas,它是基于Numpy的科学计算库,与Sciket-learn一起几乎提供了数据分析所需要的全部计算工具。本文重点介绍一下数据处理部分要用到的pandas.

首先,需要引入pandas:

import pandas as pd

pandas的基本数据结构是Series和DataFrame:

1、Series

Series是带有索引的一位数组,我们可以使用pd.Series()方法创建一个Series,如:

Series1=pd.Series([1,3,5,-7]),或者Series=pd.Series([1,3,5,-7], index=[‘0’,’1’,’2’,’3’])

这说明pandas中既可以使用默认的索引,也可以重新索引。Series1输出就是:

0 1

1 3

2 5

3 -7

左边是Series1.Index,右边是Series1.values

2、DataFrame

DataFrame是不同数据类型的列组成的二维结构表,可以使用pd.DataFrame来创建。当然,我们常用的还是从外部文件读取,例如,pd.read_csv(),pd.read_excel(),或者pd.read_sql等。

data={‘year’:[2010,2011,2012],’pop’:[97,101,112]}

Obj=DataFrame(data)

3、索引

那怎么取数据?pandas的索引非常方便。Series可以使用Series1[1]取到index=1这一行,也可以Series1[:2]取到前两行,或者通过布尔索引,Series1[Series1>0]取到值满足为正数的前三行(仍然是Series类型)。

DataFrame类似,可以直接通过布尔型的DataFrame进行索引,如DataFrame[Obj [‘pop’]<100]=0直接给’pop’小于100的行的值重新定义。

下面列出DataFrame的索引选项:

类型

说明

Obj[val]

选取DatFrame的单列

Obj.ix[val]

选取DatFrame的单行或一组行

Obj.ix[:,val]

选取DatFrame的单列,或列子集

Obj.ix[val1,val2]

同时选取行和列

reindex方法

将一个或多个轴匹配到新索引

xs方法

根据标签选取单行或单列,返回Series

icol,irow方法

根据整数位置选取单行或单列,返回Series

get_value、set_value方法

根据行标签和列标签选取单个值

另外,panas支持层次化索引,也就是在一个轴上有两个及以上的索引级别,比如“year”和”month“,例如Series2=pd.Series([1,3,5,-7], index=[[‘2015’,’2015’,’2016’,’2016’],['1','2','1','2']]),索引选取数据的方法类似。

4、自动数据对齐和算术运算

有了快速索引的方法,下面我们就可以对不同的索引对象进行算术运算。pandas的一个重要的特点就是会不同的索引进行自动对齐,并像sql里的FULL JOIN 一样返回索引的并集,在不重叠的索引部分自动填充NA值。例如:

s1=pd.Series([1,3,5], index=[‘a’,’b’,’c’])

s1=pd.Series([11,13,15], index=[‘a’,’b’,’d’])

那么s1+s2结果为:

a 12.0

b 16.0

c NA

d NA

同时,pandas提供了丰富的方法,用来对Series和DataFrame进行增改、排序、计算,尤其在进行数组运算和矩阵运算时。增改可以直接通过索引来定义,例如:

s1['e']=7,就在s1的末尾增加了一个值;

排序使用sort_index方法,例如obj.sort_index(by='year')是按照年份进行排序;

计算的函数如count,min,max,mean,describe,var,std等描述性统计,还有偏度skew,峰度kurt,累积和cumsum,累计最大值cummax等,不再赘述。

最后,推荐大家可以参考《利用Python进行数据分析》。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值