0
点赞
收藏
分享

微信扫一扫

Pandas数据分析

zibianqu 2022-01-20 阅读 112

Pandas学习

(一).前言:

Pandas是建立在Numpy数据结构上的,尤其时它的Series 和Dataframe对象,为数据科学家们处理那些消耗大量时间的"数据清理"任务提供了捷径.
下面我将重点介绍Series ,Dataframe和其他数据结构的高效使用方法.

(二).Pandas的安装:

在安装Pandas之前首相要确保你已经安装了Numpy,详细的安装方法,请参考Pandas官方文档(http://pandas.pydata.org/).

(三).Pandas对象简介:

三个基本数据结构:Series,DataFrame,和Index.

1.Pandas的Series对象

1.1 Series是通用的Numpy数组

Series对象和一维Numpy数组基本可以等价交换,本质差异就是索引:
Numpy通过隐式定义的整数索引获取数值,而Series使用一种显式定义的索引与数值关联,意思就是索引不单单可以是整数,还可以是任意想要的类型,例如:字符串,浮点数等等.

data = pd.Series([0.25,0.5,0.75,1.0],index=['a','b','c','d'])
print(data)

输出结果:

a    0.25
b    0.50
c    0.75
d    1.00
dtype: float64

也可以使用不连续或者不按顺序的索引:

data = pd.Series([0.25,0.5,0.75,1.0],index=[2,5,3,7])
print(data)

输出结果:

2    0.25
5    0.50
3    0.75
7    1.00
dtype: float64
进程已结束,退出代码为 0

1.2. Series是特殊的字典

Series其实是一种将类型键映射到类型值的数据结构.
我们可以直接使用字典创建一个Series对象:

area_dict={'California':423967,'Texas':605662,'New York':141297,'Florida':170312,'Illinois':149995}
area=pd.Series(area_dict)
print(area)

输出结果:

California    423967
Texas         605662
New York      141297
Florida       170312
Illinois      149995
dtype: int64

用字典创建Series时,典型的字典数值获取方式仍然有效

 print(population['California'])

1.3. 创建Series对象

上述几种创建方式都是这样的形式

其中index是一个可选参数,data参数支持多种数据类型.
例如:data可以是一个Numpy数组

pd.Series([2,4,6])

输出结果:

0    2
1    4
2    6
dtype: int64

data也可以是一个标量,创建时会重复填充到每一个索引上:

pd.Series(5,index=[100,200,300])

输出结果:

100    5
200    5
300    5
dtype: int64

data还可以是一个字典,index默认是排序的字典键:

pd.Series({2:'a',1:'b',3:'c'})

输出结果:

2    a
1    b
3    c
dtype: object

每一种形式都可以通过显式指定索引:

pd.Series({2:'a',1:'b',3:'c'},index=[3,2])

输出结果:

3    c
2    a
dtype: object

需要注意的是,Series只会保留显式定义的键值对.

2. Pandas的DataFrame对象

Pandas的另一个基础数据结构就是Dataframe.也可以作为Numpy的一个通用类型数组,也可以看作特殊的字典.

2.1.DataFrame是通用的Numpy数组

前面我们了解到了,Series是有灵活的行索引的一维数组,那么DaraFrame就可以看做,是一种既具有灵活的行索引,还具有灵活的列名的二维数组.

population_dict={'California':38332521,'Texas':26448193,'New York':19651127,'Florida':19552860,'Illinois':12882135}
population=pd.Series(population_dict)
area_dict={'California':423967,'Texas':605662,'New York':141297,'Florida':170312,'Illinois':149995}
area=pd.Series(area_dict)
states=pd.DataFrame({'population':population,'area':area})
print(states)

输出结果:

            population    area
California    38332521  423967
Texas         26448193  605662
New York      19651127  141297
Florida       19552860  170312
Illinois      12882135  149995
进程已结束,退出代码为 0

可以看到DataFrame类似于二维数组,具有列名的对象
和Series一样,DataFrame也有index属性可以获取索引标签:

print(states.index)

输出结果:

Index(['California', 'Texas', 'New York', 'Florida', 'Illinois'], dtype='object')

另外,DataFrame还有一个columns属性,是存放列标签的index对象:

print(states.columns)

输出结果:

Index(['population', 'area'], dtype='object')

2.2. DataFrame是特殊的字典

DataFrame是一种一列映射一个Series值的数据.例如:通过area可以返回包含列属性的Series对象:

print(states['area'])

输出结果:

California    423967
Texas         605662
New York      141297
Florida       170312
Illinois      149995
Name: area, dtype: int64
进程已结束,退出代码为 0

注意:在Numpy二维数组里面,data[0]是返回第一行,而DataFrame中data[‘col0’]是返回第一列

2.3.创建DataFrame对象

2.3.1通过单个Series创建.

在这里插入代码片
举报

相关推荐

0 条评论