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))
运行结果如下:
其他类型的例子
整型:
1. lucky_numbers={4,8,15,16,23,42} 2. 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))
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()
1. ns_4=ns.tail(3) 2. ns_5=ns.tail(5) 3. print(ns_4) 4. print(ns_5)