关于Pandas
Pandas库基于Numpy库,提供了不少用于数据操做与分析的功能。数组
1.安装与使用
安装:
pip install pandas
根据惯例,咱们使用以下的方式引入pandas:import pandas as pd
两个经常使用数据类型:
pandas提供两个经常使用的数据类型:
• Series
• DataFrame函数
In [1]:
import pandas as pd 大数据
2.Series类型
Series类型相似于Numpy的一维数组对象,能够将该类型看作是一组数据与数据相关的标签(索引)联合而构成(带有标签的一维数组对象)。
1.建立方式
Series经常使用的建立(初始化)方式:
• 列表等可迭代对象
• ndarray数组对象
• 字典对象
• 标量对象
In [3]:索引
s=pd.Series({"a":10,"b":20,"c":30})
print(s)ip
a 10
b 20
c 30
dtype: int64内存
2.相关属性
• index
• values
• shape
• size
• dtype
Series对象能够经过index与values访问索引与值。其中,咱们也能够经过修改index属性来修改Series的索引。说明:
• 若是没有指定索引,则会自动生成从0开始的整数值索引,也可使用index显式指定索引。
• 当数值较多时,能够经过head与tail访问前 / 后N个数据。
• Series对象的数据只能是一维数组类型。数据分析
In [10]:pandas
s=pd.Series([1,2,3],index=[2,3,4])pip
print(s.shape) # size都是用来显示series中有多少个元素的
(3,)
3.Series相关操做
Series在操做上,与Numpy数据具备以下的类似性:
• 支持广播与矢量化运算。
• 支持索引与切片。
• 支持整数数组与布尔数组提取元素。
1.运算
Series类型也支持矢量化运算与广播操做。计算规则与Numpy数组的规则相同。同时,Numpy的一些函数,也适用于Series类型,例如,np.mean,np.sum等。
多个Series运算时,会根据索引进行对齐。当索引没法匹配时,结果值为NaN(缺失值)。说明:
• 咱们能够经过pandas或Series的isnull与notnull来判断数据是否缺失。
• 除了运算符之外,咱们也可使用Series对象提供的相关方法进行运算【能够指定缺失的填充值】。
• 尽管Numpy的一些函数,也适用于Series类型,但Series与ndarray数组对于空值NaN的计算处理方式上是不一样的。【Numpy的计算,会获得NaN,而Series会忽略NaN】
In [12]:
Out[12]:
0 11
1 22
2 33
dtype: int64
2.索引
标签索引与位置索引
若是Series对象的index值为非数值类型,经过[索引]访问元素,索引既能够是标签索引,也能够是位置索引。这会在必定程度上形成混淆。咱们能够经过:
• loc 仅经过标签索引访问。
• iloc 仅经过位置索引访问。
这样,就能够更加具备针对性去访问元素。
整数数组索引与布尔数组索引
Series也支持使用整数数组与布尔数组进行索引。与Numpy数组相同,两者返回的是原数组数据的拷贝(复制)。
说明:
• 与ndarray数组的整数索引不太相同,Series的整数数组索引,既能够是标签数组索引,也能够是位置数组索引。
In [30]:
s=pd.Series([1,2,3],index=[10,20,30])
s.iloc[0]
s.iloc[0],s.iloc[1]
li_index=[0,1]
s.iloc[li_index]
li_keys=[10,20]
s.loc[li_keys]
s[[True,False,False]]
s=pd.Series(range(20))
s_b=s>10
s[s_b]
Out[30]:
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
dtype: int64
3.切片
Series也支持切片访问一个区间的元素。与Numpy的数组相同,切片返回的是原数组数据的视图。
In [38]:
s=pd.Series(range(20),index=range(100,120))
s
s.iloc[5:10]
s.loc[104:109]
s=pd.Series(range(5),index=["a","b","c","d","e"])
s.loc["d"]
s.loc["b":"d"]
Out[38]:
b 1
c 2
d 3
dtype: int64
4.Series的CRUD
Series索引-数值CRUD操做:
• 获取值
• 修改值
• 增长索引-值
• 删除索引-值
In [48]:
s=pd.Series(range(5),index=["a","b","c","d","e"])
s.loc["f"]=5
s.loc["f"]=50
s
s.drop("a",inplace=True)
s
Out[48]:
b 1
c 2
d 3
e 4
f 50
dtype: int64
将请期待下一篇——Pandas经常使用的两种数据类型之“DataFrame”
若是你以为文章还不错,请你们点赞分享下。你的确定是我最大的鼓励和支持。
▼更多干货分享,详情请关注公众号Python爬虫与大数据分析呀!▼