Hi😊😊~大家好呀~最近两天釉色酱在学习python中的数据分析的一个基本库——pandas。今天就先学习pandas中最基本的数据结构Series。下面我们一起进入Series的世界吧!😝
Pandas简介:
- Pandas是一种基于Python语言的快速、强大、灵活且易于使用的开源数据分析和数据操作工具。
- pandas使用Data Frame来存储多列的数据集,使用Series存储单列数据集。
- Data Frame是二维的数据表,有行有列。Data Frame可以说是由一组Series组成的。
Series:
- Series有标记(lable)
- Series的每个值有顺序(order,索引位置)
- 可以通过标记和位置来引用Series里面的值
- Series是带有标记的同质数据的一维数组
Series简介
Series是pandas里面的类,所以需要先引用pandas:
import pandas as pd
创建Series类·的实例
pd.Series()
这其实相当于一个构造函数,可以添加参数。(比如列表,元组,字典等)
为Series填充值
参数为列表(list)
import pandas as pd
ls=["周一","周二","周三","周四","周五"]
print(pd.Series(ls))
运行结果如下:
由此,我们可以看到第一列,即”0 1 2 3 4“就是索引。我们没有指定index,所以使用默认索引。在Series中,默认索引是从0开始的数字,指定索引后才有所改变。
设置索引(index)
import pandas as pd
ls=["周一","周二","周三","周四","周五"]
serial=[1,2,3,4,5]
print(pd.Series(data=ls,index=serial))
运行结果如下:
其他类型的例子
整型:
lucky_numbers={4,8,15,16,23,42}
print(pd.Series(lucky_numbers))
浮点型:
stock_prices={985.32,950.44}
time_of_day={"Open","Close"}
print(pd.Series(data=stock_prices,index=time_of_day))
bool类型:
bunch_of_bools={True,False,False}
print(pd.Series(bunch_of_bools))
构造函数强制类型转换:
(dtype:数据类型)
lucky_numbers={4,8,15,16,23,42}
print(pd.Series(data=lucky_numbers,dtype="float"))
import pandas as pd
import numpy as np
temperatures={94,88,np.nan,91}
print(pd.Series(data=temperatures))
(注意:dtype是float64)
当含有nan值时,pandas会自动把数值的类型转化为浮点型,目的是保持类型的一致。
从其他Python类型创建Series:
从字典(Dictionary创建Series)
import pandas as pd
persons={"张三":185,"李四":177,"王二麻子":181.4} #key与value
print(pd.Series(persons))
运行结果如下:
这时key就作为lable,values还是字典中的values。
从元组(tuple)创建Series
import pandas as pd
color=("Red","Green","Blue")
print(pd.Series(data=color))
这时的索引仍然是默认的:
注意:不能使用set(集合),因为它是无序的。
从Numpy的ndarray
rd=np.random.randint(1,101,10)#创建1~100之间的10个随机数
print(rd)
print(pd.Series(rd))
Series的属性
1.values属性
import pandas as pd
color=("Red","Green","Blue")
s=pd.Series(color)
print(s.values)
运行结果如下:
['Red','Green','Blue']
其属性为
nump.ndarray
2.index属性
import pandas as pd
color=("Red","Green","Blue")
s=pd.Series(color)
print(s.index)
运行结果为:
RangeIndex(start=0,start=3,step=1)
其属性为:
pandas.core.indexes.base.Index
3.dtype属性
import pandas as pd
color=("Red","Green","Blue")
s=pd.Series(color)
print(s.dtype)
运行结果为:
object
4.size属性
返回values的个数
print(s.size)
3
5.shape属性:
返回一个元组(由于Series是一维的,所以只返回一个数)
print(s.shape)
(3,)
6.is_unique属性
若Series里面有相同的,则返回False。若没有,则返回Ture
print(s.is_unique)
Ture
获取前几行和后几行
d=range(0,500,5) #生成一个序列
ns=pd.Series(data=d)
print(ns)
取前n个数需要用到函数head()。
如果没有传递参数,那么默认为5。(不同编译系统可能不同)
import pandas as pd
d=range(0,500,5)
ns=pd.Series(data=d)
print(ns)
ns_2=ns.head(5)
print(ns_2)
ns_3=ns.head(10)
print(ns_3)
获取后几行,利用函数tail()
ns_4=ns.tail(3)
ns_5=ns.tail(5)
print(ns_4)
print(ns_5)