首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据分析-pandas详细教程一

Pandas模块作为数据分析的首选库,它含有更快更简单的高级数据结构和操作工具,本期主要介绍pandas模块下的Series结构,Series的字符串表现形式为:索引在左边,值在右边。当其没有指定索引时,会自动创建一个0到N(N为数据的长度)的整数型索引。

一、创建Series

Series的创建主要有三种方式,示例如下:

In [1]:importnumpyasnp

In [2]:importpandasaspd

#通过列表创建Series

In [3]:obj1=pd.Series([3,6,-5,9])

In [4]:obj1

Out[4]:

0 3

1 6

2-5

3 9

dtype:int64

#通过字典创建Series

In [5]:dic={'name':'xiaozhang','age':18,'marriage':'单身','address':'浙江杭州'}

In [6]:obj2=pd.Series(dic)

In [7]:obj2

Out[7]:

address浙江杭州

age18

marriage单身

name xiaozhang

dtype:object

#通过一维数组创建Series

In [8]:arr=np.array((2,5,,7))#创建一维数组

In [9]:arr

Out[9]:array([2,5,,7])

In [10]:obj3=pd.Series(arr)

In [11]:obj3

Out[11]:

0 2

1 5

2 0

3 7

dtype:int32

二、Series属性以及修改

1、对于创建好的Series,通过Series的values和index属性获取数组值和索引对象。

In [1]:importpandasaspd

#创建Series

In [2]:obj=pd.Series([4,7,-5,3],index=['a','b','c','d'])

In [3]:obj

Out[3]:

a4

b7

c-5

d3

dtype:int64

#获取Series的值

In [4]:obj.values

Out[4]:array([4,7,-5,3],dtype=int64)

#获取Series的索引

In [5]:obj.index

Out[5]:Index(['a','b','c','d'],dtype='object')

2、Series属性的修改,主要是index和values的修改。

In [1]:importpandasaspd

#创建Series

In [2]:obj=pd.Series([10,20,30,40],index=['a','b','c','d'])

In [3]:obj

Out[3]:

a10

b20

c30

d40

dtype:int64

# 通过赋值的方式修改values

In [4]:obj['a']=8

In [5]:obj

Out[5]:

a8

b20

c30

d40

dtype:int64

In [6]:obj[1:3]=[16,25]

In [7]:obj

Out[7]:

a8

b16

c25

d40

dtype:int64

#通过赋值的方式修改index

In [8]:obj.index=['Bob','Mary','Jack','David']

In [9]:obj

Out[9]:

Bob8

Mary16

Jack25

David40

dtype:int64

三、查询Series数据

In [1]:importpandasaspd

#创建Series

In [2]:obj=pd.Series(pd.Series([2,4,6,8],index=['a','b','c','d']))

In [3]:obj

Out[3]:

a2

b4

c6

d8

dtype:int64

#通过索引查询单值

In [4]:obj['a']

Out[4]:2

#通过索引序列查询多值

In [5]:obj[['a','b']]

Out[5]:

a2

b4

dtype:int64

#通过布尔类型索引筛选

In [6]:obj[obj>2]#筛选大于2的值

Out[6]:

b4

c6

d8

dtype:int64

#通过位置切片和标签切片查询数据

In [7]:obj[:2]#查询前2个元素

Out[7]:

a2

b4

dtype:int64

In [8]:obj['b':'c']

Out[8]:

b4

c6

dtype:int64

四、Series函数的应用

这部分主要讲一下Series中常用的几个函数,比如:唯一值unique、值计数value_counts、排序sort_index和sort_values、抽样sample等函数。

1、对于离散型变量的序列,我们更想知道该序列中有哪些取值以及各个取值频数的统计。

In [1]:importnumpyasnp

In [2]:importpandasaspd

#创建Series

In [3]:obj=pd.Series(['a','c','a','b','b','a','a','b'])

#唯一值

In [4]:obj.unique()

Out[4]:array(['a','c','b'],dtype=object)

#频数的统计

In [5]:obj.value_counts()

Out[5]:

a4

b3

c1

dtype:int64

2、排序函数sort_index和sort_values

In [1]:importnumpyasnp

In [2]:importpandasaspd

#创建Series

In [3]:obj=pd.Series(np.random.normal(size=4))

In [4]:obj

Out[4]:

-0.507302

1-0.185045

2-0.876905

3 0.898253

dtype:float64

#按Series的索引排序

In [5]:obj.sort_index(ascending=False)#降序排序

Out[5]:

3 0.898253

2-0.876905

1-0.185045

-0.507302

dtype:float64

#按Series的值排序

In [6]:obj.sort_values()

Out[6]:

2-0.876905

-0.507302

1-0.185045

3 0.898253

dtype:float64

3、抽样是数据分析中常用的方法,通过抽样将样本拆分成训练集和测试集,pandas模块提供了sample函数来完成抽样。

Series.sample(n=None,frac=None,replace=False,weights=None,random_state=None,axis=None)

n:指定抽取的样本量;

frac:指定抽取的样本比例;

replace:是否有放回抽样,默认无放回;

weights:指定样本抽中的概率,默认等概论抽样;

random_state:指定抽样的随机种子。

示例如下:

In [1]:importpandasaspd

#从100个人中抽取3位幸运观众

In [2]:obj1=pd.Series(range(1,101))

In [3]:obj1.sample(n=3,random_state=2)

Out[3]:

83 84

30 31

56 57

dtype:int32

#从1-6中有放回抽取3个数

In [4]:obj2=pd.Series(range(1,7))

In [5]:obj2.sample(n=3,replace=True,random_state=2)

Out[5]:

0 1

5 6

0 1

dtype:int32

五、Series统计分析

Pandas模块为我们提供非常多的描述性统计分析函数:最大值、最小值、均值、分位数、方差、标准差等。

In [1]:importpandasaspd

#创建Series

In [2]:obj=pd.Series(range(1,50))

In [3]:obj.count()#非空元素的个数

Out[3]:49

In [4]:obj.min()#最小值

Out[4]:1

In [5]:obj.max()#最大值

Out[5]:49

In [6]:obj.quantile(0.25)# 25%分位数

Out[6]:13.0

In [7]:obj.quantile(0.90)# 90%分位数

Out[7]:44.2

In [8]:obj.sum()#求和

Out[8]:1225

In [9]:obj.mean()#均值

Out[9]:25.0

In [10]:obj.median()#中位数

Out[10]:25.0

In [11]:obj.var()#方差

Out[11]:204.16666666666666

In [12]:obj.std()#标准差

Out[12]:14.288690166235206

In [13]:obj.describe()#一次输出多个描述性统计指标

Out[13]:

count49.00000

mean25.00000

std14.28869

min1.00000

25%13.00000

50%25.00000

75%37.00000

max49.00000

dtype:float64

特别注意的是,describe函数只针对Series和DataFrame结构。

此次Pandas模块中的Series结构就介绍到这,下期将分享该模块下的DataFrame结构。

学习与分享,关注小号

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180302G09PHU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券