pandas数据结构介绍
Series
pd.Series([1,2,3] ,index = []) | 创建一个带索引的一维数组 |
pd.Series(字典 ,index= []) | 创建一个带索引的一维数组,可以通过index来修改索引,如修改后的索引不在字典中存在,该值为Na'N |
arr.values | 获取数组数值 |
arr.index | 获取数组索引对象 |
arr['a','b'] | 通过索引方式选取单个或者一组值 |
arr[arr>0] | 根据布尔型数组进行过滤 |
b' in arr | 判断索引b是否存在 |
pd.isnull(arr)或arr.isnull() | 判断是否缺失数据 |
pd.notnull(arr) | 判断是否没有缺失数据 |
arr+arr1 | Series中的一个重要功能是自动对齐不同索引的数据,返回的是arr和arr1的并集 |
arr.name = 'a' | Series对象本身优一个name属性 |
arr.index.name = 'b' | 索引有一个name属性 |
arr.index = [] | 可就地修改索引 |
DataFrame
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc0My8zM2I2ZmRlNGFiOWQ4M2QzYjMzNzcxNWFjYTJkNmEyNy5KUEVH)
列获取 |
frame['a'] | 返回一个Series,如不存在a可以通过赋值方式进行修改 |
frame.a | 返回一个Series |
frame.ix['three'] | ix可进行行获取 |
del frame['a'] | 删除a列 |
frame.T | 对frame进行转置 |
frame.index.name | 对index或columns设置name属性 |
索引对象
index对象是不可修改的,用户不能对此进行修改
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE3Ny9jMWEyZTA3MDQ3ZjhmNWVkMGMwYWFmYzFiNTkzZjQyMS5KUEVH)
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQwNC8xZDk1ZTMyY2QwYzNhMDJmNWUxNGNkMDdlYmM1MTNlNC5KUEVH)
基本功能
重新索引
arr.reindex | 根据新索引进行重排,如果某个索引值不存在,就引入缺失值 |
arr.reindex([],fill_value = 0,method = '') |
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzMyNi81ODE0YTdmYzQzODViZDZlMGU5MTdhMTE3ZDIyYmU3Ni5KUEVH)
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzEyMS8wOTFhMmYwYjMxZmExZWM2YWE4ZTU5N2JkNmQ4ZDE5OS5KUEVH)
丢弃指定轴上的值
obj.drop() | drop方法返回的是一个在指定轴上删除了指定值的新对象 |
索引、选取和过滤
obj[’b‘:’c‘] | 利用标签的切片运算与普通的python切片运算不同,其末端是包含的 |
算术运算与数据对齐
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQzNi9iNTQyNWM4Njk0MDZiNjBkZDA4N2E0NTdjMGMyN2Y1Yy5KUEVH)
在算术方法中填充值 | df1.add(df2,fill_value = 0) |
DataFrame 和Series之间的运算 | 会沿着一直向下广播 |
函数应用于映射
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ4MS80M2FkNjU3M2MxOWMyY2E0YTE2ZTdjY2RiMTM0NWViOS5KUEVH)
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzIzLzExZGZkM2MwNjcxYWYwZGYzMTI4Y2Y0MDViN2Y0MTg3LkpQRUc=)
排序和排名
按索引进行排序 | obj.sort_index(axis = 1, ascending = False) |
按值进行排序(Series) | obj.order() 任何缺失值会放到末尾 |
按值进行排序(DataFrame) | obj.sort_index(by=[]) 将一个或多个列的名字传递给by |
rank返回排名值 | obj.rank(ascending = ,method = ) |
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ3My85NWIwNzZmMzFiMWZhOTYyMWUwOTUzMDM4YjUxMmQxMS5KUEVH)
带有重复值的轴索引
obj.index.is_unique | 索引的is_unique属性可以知道它的值是否唯一 |
汇总和计算描述统计
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYzNy83MzVjNmY1ZTdkYTc1ZGUxMzFiMmQ0MzlmNWVlYTNmZC5KUEVH)
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzM3My8zOWIyNjEwODhmOGQ2MzAwZGNiNWYyMmM3ZjNhZWM0ZC5KUEVH)
df.mean(axis = 1, skipna = )
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc0OS9hYjA4ZTJhNTNmMWQwNDBkY2QxMDdkNDBlZjUzNzM4NS5KUEVH)
相关系数与协方差
obj.corr() | 用于计算两个Series中重叠的、非NA的、按索引对齐的值的相关系数 |
obj.cov() | 用于计算协方差 |
obj.corrwith() | 计算其列或行跟另一个Series或DataFrame之间的相关系数 |
唯一值、值计数以及成员资格
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg3MS9iN2EyZDFkNDk2ZDM5MzJmYWUyYzVmYjQ2NDJlNWZlNy5KUEVH)
处理缺失数据
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkwNi8wMTI4YmM5MjZlYzU5MzE3NGZiODFlMDMxNWJjZmRlMi5KUEVH)
滤掉缺失数据
df.dropna(how = ‘any’,thresh = 3)
填充缺失数据
df.fillna()
![[利用python进行数据分析 书笔记]第5章 pandas入门 [利用python进行数据分析 书笔记]第5章 pandas入门](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQyNy8zYzZlNjM3NDUzYjY0OGVjN2EyMTRiNjU3MTkyNzUxYi5KUEVH)
层次化索引
data.unstack() | 进行数据重塑 |
data.stack() | unstack的逆运算 |
重排分级排序
frame.swaplevel('key1','key2') | 接受两个级别编号或名称,并返回一个互换了级别的新对象(但数据不发生变化) |
frame.sortlevel() | 根据单个级别中的值对数据进行排序(稳定的) |
根据级别汇总统计
frame.sum(level = '') | 根据行或列上的级别进行求和 |
使用DataFrame的列
frame.set_index() | 将一个或多个列转换为行索引,并创建一个新的DataFrame |
其他有关Pandas的话题
整数索引
如果有一个含0/1/2的索引,但是很难判断用户是想基于标签或位置的索引 |
ix | 面向标签的索引器 |
iget_value/irow/icol | 不考虑索引类型/基于位置的索引 |