内容简介:1.Pandas 简介1.1 pandas是什么Pandas是Python第三方库,提供高性能易用数据类型和分析工具
编辑推荐: |
本文来源csdn,本文主要对 Python 的第三方库Pandas,进行高性能易用数据类型和分析。 |
1.Pandas 简介
1.1 pandas是什么
Pandas是Python第三方库,提供高性能易用数据类型和分析工具
Pandas基于NumPy实现 ,常与NumPy和Matplotlib一同使用
1.2 pandas vs numpy
2.Pandas库的Series类型
2.1 Series的结构
#多维一列,形式是:索引+值。(省略index会自动生成,从0开始)
>>> pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])
a 1
b 2
c 3
d 4
e 5
dtype: int64
2.2 Series的创建
Series类型可以由如下类型创建:
1.Python列表
2.标量值
3.Python字典
4.ndarray
5.其他函数,range()等
#标量值
>>> pd.Series(5)
0 5
dtype: int64
#标量值+index 结果会根据索引重新排序
pd.Series(5,index=['a','v','c','d','e'])
a 5
v 5
c 5
d 5
e 5
dtype: int64
#字典
>>> pd.Series({'a':999,'v':888,'c':756,
'd':7,'e':437})
a 999
c 756
d 7
e 437
v 888
dtype: int64
#字典+index
>>>pd.Series({'a':999,'v':888,'c':756,
'd':7,'e':437},index=['a','v'])
a 999
v 888
dtype: int64
#用ndarray创建
>>> pd.Series(np.arange(5),index=np.
arange(14,9,-1))
14 0
13 1
12 2
11 3
10 4
dtype: int32
Seriesd的创建总结:
1.Series类型可以由如下类型创建:
2.Python列表,index与列表元素个数一致
3.标量值,index表达Series类型的尺寸
4.Python字典,键值对中的“键”是索引,index从字典中进行选择操作
5.ndarray,索引和数据都可以通过ndarray类型创建
6.其他函数,range()函数等
2.3 Series基本操作
1.Series类型包括index和values两部分
2.Series类型的操作类似ndarray类型
3.Series类型的操作类似Python字典类型
(1)Series基本操作
#Series基本操作
>>>a=pd.Series({'a':1,'v':2,'c':3,'d':4,'e':5})
>>> a.index
Index(['a', 'c', 'd', 'e', 'v'], dtype='object')
>>> a.values
array([1, 3, 4, 5, 2], dtype=int64)
#两套索引并存,但不能混用
>>> a[['a','v']]
a 1
v 2
dtype: int64
>>> a[[0,4]]
a 1
v 2
dtype: int64
#混用,以靠前的为准
>>> a[['a',4]]
a 1.0
4 NaN
dtype: float64
(2)Series类型的操作类似ndarray类型:
索引方法相同,采用 [ ]
可以通过自定义索引的列表进行切片
可以通过自动索引进行切片,如果存在自定义索引,则一同被切片
#采用 []切片
>>> a=pd.Series({'a':1,'v':2,'c':3,'d':4,'e':5})
>>> a[:3]
a 1
c 3
d 4
dtype: int64
#在索引前进行运算
>>> a[a>a.median()]
d 4
e 5
dtype: int64
#以自然常数e为底的指数函数
>>> np.exp(a)
a 2.718282
c 20.085537
d 54.598150
e 148.413159
v 7.389056
dtype: float64
(3)Series类型的操作(类似Python):
通过自定义索引访问
保留字in操作
使用.get()方法
#保留字in
>>> a=pd.Series({'a':1,'v':2,'c':3,'d':4,'e':5})
>>> 'a' in a
True
>>> 'v' in a
True
#只匹配索引
>>> 1 in a
False
2.4 Series对齐操作
#Series类型在运算中会自动对齐不同索引的数据.(即对不齐,就当缺失项处理)
>>> a=pd.Series({'a':1,'v':2,'c':3,'d':4,'e':5})
>>> b=pd.Series({'a':1,'b':2,'c':3,'d':4,'e':5})
>>> a+b
a 2.0
b NaN
c 6.0
d 8.0
e 10.0
v NaN
dtype: float64
2.5 Series的name属性
#Series对象和索引都可以有一个名字,存储在属性.name中
a=pd.Series({'a':1,'v':2,'c':3,'d':4,'e':5})
>>> a.name
>>> a.name="精忠跳水队"
>>> a.name
'精忠跳水队'
>>> a
a 1
c 3
d 4
e 5
v 2
Name: 精忠跳水队, dtype: int64
2.6 Series小结
Series是一维带“标签”数组
index_0 → data_a
Series基本操作类似ndarray和字典,根据索引对齐
3.Pandas库的DataFrame类型
3.1 DataFrame结构
#DataFrame是一个表格型的数据类型,每列值类型可以不同
#DataFrame既有行索引、也有列索引
>>> df = pd.DataFrame(np.random.randint(1,10,(4,5)))
>>> df
0 1 2 3 4
0 8 5 4 1 1
1 3 4 2 7 3
2 4 3 8 9 9
3 7 8 9 1 7
3.2 DataFrame的创建
DataFrame类型可以由如下类型创建:
ndarray对象
由一维ndarray、列表、字典、元组或Series构成的字典
Series类型
其他的DataFrame类型
#由字典创建 (自定义行列索引,会自动补齐缺失的值为NAN)
>>> df=pd.DataFrame({'one':pd.Series([1,2,3],index=
['a','v','c']),'two':pd.Series([1,2,3,4,5],index=
['a','b','c','d','e'])})
>>> df
one two
a 1.0 1.0
b NaN 2.0
c 3.0 3.0
d NaN 4.0
e NaN 5.0
v 2.0 NaN
#由字典+列表创建。统一index,尺寸必须相同
>>> df=pd.DataFrame({'one':[1,2,3],'two':[2,2,3],'three'
:[3,2,3]},index=['a','b','c'])
>>> df
one three two
a 1 3 2
b 2 2 2
c 3 3 3
#索引(类似Series,依据行列索引)
>>> df['one']['a']
1
>>> df['three']['c']
3
3.3 pandas数据类型操作——重新索引
#由a b c改为c a b
>>> df.reindex(['c','a','b'])
one three two
c 3 3 3
a 1 3 2
b 2 2 2
#重排并增加列
>>> df.reindex(columns=['three','two','one','two'])
three two one two
a 3 2 1 2
b 2 2 2 2
c 3 3 3 3
#原始的数据
>>> df
one three two
a 1 3 2
b 2 2 2
c 3 3 3
#插入列
>>> newc=df.columns.insert(3,'新增')
>>> newc
Index(['one', 'three', 'two', '新增'], dtype='object')
#插入新数据
>>> newd=df.reindex(columns=newc,fill_value=99)
>>> newd
one three two 新增
a 1 3 2 99
b 2 2 2 99
c 3 3 3 99
3.4pandas数据类型操作——索引类型
>>> df
one three two
a 1 3 2
b 2 2 2
c 3 3 3
>>> nc=df.columns.delete(1)
>>> ni=df.index.insert(3,'new_index')
#无填充
>>> df.reindex(columns=nc,index=ni)
one two
a 1.0 2.0
b 2.0 2.0
c 3.0 3.0
new_index NaN NaN
#有填充
>>> df.reindex(columns=nc,index=ni,method='ffill')
one two
a 1 2
b 2 2
c 3 3
new_index 3 3
#删除行列
#默认删 除行
>>> df.drop('b')
one three two
a 1 3 2
c 3 3 3
#轴1为列
>>> df.drop('three',axis=1)
one two
a 1 2
b 2 2
c 3 3
3.5pandas数据类型运算——算数运算
算数运算法则:
算术运算根据行列索引,补齐后运算,运算默认产生浮点数
补齐时缺项填充NaN (空值)
二维和一维、一维和零维间为广播运算
采用+ ‐ * /符号进行的二元运算产生新的对象
(1)采用+ ‐ * /符号进行的二元运算:
#用符号运算,无法处理缺失值
>>> df1 =pd.DataFrame({'one':[1,2,3],'two':
[4,5,6]},index=['a','b','c'])
>>> df2 =pd.DataFrame({'one':[1,2,3]},
index=['a','b','c'])
>>> df1+df2
one two
a 2 NaN
b 4 NaN
c 6 NaN
(2)采用方法形式进行二元运算:
>>> df1 =pd.DataFrame({'one':[1,2,3],'two':[4,5,6]},
index=['a','b','c'])
>>> df2 =pd.DataFrame({'one':[1,2,3]},index=['a','b','c'])
#用方法进行运算,可选参数处理缺失值
>>> df1.add(df2,fill_value=0)
one two
a 2 4.0
b 4 5.0
c 6 6.0
#运算方式
#只对对应维度及对应位置进行运算,常数则进行广播运算。
无匹配位置,则置为NAN
df =pd.DataFrame({'one':[1,2,3],'two':[2,2,3],'three'
:[3,2,3]},index=['a','b','c'])
df3=df=pd.DataFrame({'one':[1,2,3]},index=['a','b','c'])
df4=pd.DataFrame({'two':[2,2,3]},index=['a','b','c'])
#常数
>>> df3-1
one
a 0
b 1
c 2
>>> df -1
one three two
a 0 2 1
b 1 1 1
c 2 2 2
#对应维度
>>> df3 -df
one three two
a 0 NaN NaN
b 0 NaN NaN
c 0 NaN NaN
>>> df-df4
one three two
a NaN NaN 0
b NaN NaN 0
c NaN NaN 0
3.6pandas数据类型运算——比较运算
(1)法则
比较运算只能比较相同索引的元素,不进行补齐
二维和一维、一维和零维间为广播运算
采用>、<、 >=、 <= 、==、 !=等符号进行的二元运算产生布尔对象
>>> dfx
one three two
a 1 3 2
b 1 3 2
c 1 3 2
>>> df
one three two
a 1 3 2
b 2 2 2
c 3 3 3
>>> df>dfx
one three two
a False False False
b True False False
c True False True
4.Pandas数据类型小结
1.据类型与索引的关系,操作索引即操作数据
2.Series = 索引+ 一维数据
3.DataFrame = 行列索引+ 多维数据
4.重新索引、数据删除、算术运算、比较运算
5.像对待单一数据一样对待Series和DataFrame对象
以上所述就是小编给大家介绍的《数据分析相关库之Pandas》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 数据分析是什么,如何完善数据分析知识体系
- 大数据分析工程师入门(二十):数据分析方法
- 数据分析的准备工作:从问题分析到数据清洗
- 蚂蚁数据分析平台的演进及数据分析方法的应用
- 如何分析“数据分析师”的岗位?
- python数据分析于实现,单样本体检验、独立样本体检验、相关分析、列联表分析!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
About Face 4: 交互设计精髓
[美] 艾伦·库伯、[美] 罗伯特·莱曼、[美] 戴维·克罗宁、[美] 克里斯托弗·诺埃塞尔 / 倪卫国、刘松涛、杭敏、薛菲 / 电子工出版社 / 2015-10 / 118.00元
《About Face 4: 交互设计精髓》是《About Face 3:交互设计精髓》的升级版,此次升级把全书的结构重组优化,更加精练和易用;更新了一些适合当下时代的术语和实例,文字全部重新编译,更加清晰易读;增加了更多目标导向设计过程的细节,更新了现行实践,重点增加 移动和触屏平台交互设计,其实《About Face 4: 交互设计精髓》多数内容适用于多种平台。 《About F......一起来看看 《About Face 4: 交互设计精髓》 这本书的介绍吧!