关于pandas
程序员文章站
2022-03-09 20:31:20
...
1.关于pandas
概念:基于numpy构建,为数据分析而存 --- 数据分析核心工具包
优点:
1.一维数组series + 二维数组dataframe
2.可直接读取数据并做处理(高效简单)
3.兼容各种数据库
4.支持各种算法分析
2.Pandas数据结构Series
概念:是带有标签的以为数组,能够保存任意类型的数据(整数,字符串,浮点数等)
注意:
1.series相比较ndarray,是一个自带索引index的数组 -> 一维数组 + 对应索引,所以
当我们只看series的值时,就是一个一维数组。
2.series与ndarray的索引切片功能差别不大
3.series和字典相比,series更像是一个有顺序的字典,其索引原理和index相似(一个用key,一个用index)
4.index查看的是series索引,values查看的是series值
Series创建方式有以下几种:
1.由字典进行创建
格式:dic = {}
s = pd.Series(dic)
注意:字典的key就是index,values就是value
2.由数组进行创建
arr = np.random.randn(5)
s = pd.Series(arr)
注意:可以设置index参数,长度保持一致。
可以设置dtype,用来设置数值类型
3.由标量进行创建
s = pd.Series(100,index=range(4))
注意:如果是标量值,则必须提供索引,会重复该值,来匹配索引长度,如果不加索引,则为0
Series的名称属性:
关键字:name
作用:可以用来设置标题
更改已有标题:rename
注意:
1.name方法是用来删除数组的名称,输出格式为str,如果没有定义输出名称,则输出为None
2.rename方法是重新命名一个数组的名称,并创建新数组,原数组不变
Series下标:
注意:该下标取值与list有点不一样,不能取-1如:s[-1]
Series标签索引:
1.方法类似下标索引,用[]表示,内写上index,注意 index是字符串,在使用index切片时,包含末值
2.如果需要选择多个标签的值,用[[]]来表示 ---> 相当于[]中包含一个列表
3.多标签索引结果是一个新的数组
布尔型索引:
可以直接通过下标进行添加空值:
s[3] = None 或者 s[3] = np.Nan
数组做判断之后返回的是一个由布尔值组成的新数组:
bs1 = s > 50 ---> 如果值大于50,该位置返回的则是True,否则是False
isnull() 与 notnull :
作用:判断是否为空值
注意:None是空值,Nan代表有问题的数值,两个都会识别为空值
数据的查看:
1.head()
作用:查看头部数据
2.tail()
作用:查看尾部数据,默认查看5条记录
重新索引:
关键字:reindex
作用:会根据索引进行重新排序,如果当前索引不存在,则引入缺失值 Nan
注意:
1.reindex中也是写列表
2.对于缺失值,我们可以使用 fill_value参数进行填充,例如:
s2 = s1.reindex(['a','b','c'],fill_value=1)
解释:使用a b c 进行索引排序,缺失值使用1填充
Series的对齐:
1.series上的操作会根据标签自动对齐,例如:
s1 = pd.Series(np.random.rand(3), index = ['Jack','Marry','Tom'])
s2 = pd.Series(np.random.rand(3), index = ['Wang','Jack','Marry'])
2.index的顺序不会影响数值计算,以标签来计算
3.空值和任何值进行计算结果仍为空值
Series中的删除:
关键字:drop
方法:根据索引进行删除,可以一次删除一个,也可以使用[]的方式一次删除多个
注意:drop删除元素之后返回副本(inspace=False),即创建一个新数组,如果
inspace=True,则修改的是原数组,不会创建新数组。
Series元素添加:
1.直接通过下标索引/标签索引进行添加值,例如:
s1[6] = 8
s2['a'] = 10
2.通过append方法也可以添加,添加的是一个数组,并生成一个新的数组,不改之前的数组
Series修改:
和list没什么太大的区别:
通过索引或者切片直接修改,如果使用切片记得在[]中放一个列表
下一篇: Python清洗常用工具