作者:Paul

pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍;另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据。本文十分详细并实在低介绍了pandas处理数据的基本方法,十分建议各位对pandas学习感兴趣的同学下载代码亲自运行进行实际操作。

pandas 索引对象

pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。

Index对象是不可修改的(immutable),因此用户不能对其进行修改。不可修改性非常重要,因为这样才能使Index对象在多个数据结构之间安全共享。

pandas中主要的index对象


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行


Index的方法和属性


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_02


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_03


实例如下


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_04


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_05


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_06


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_07


Pandas 重新索引

● 创建一个适应新索引的新对象,该Series的reindex将会根据新索引进行重排。如果某个索引值当前不存在,就引入缺失值。

● 对于时间序列这样的有序数据,重新索引时可能需要做一些插值处理。method选项即可达到此目的。

reindex函数的参数


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_08


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_09


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_10


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_11


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_12


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_13


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_14


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_15


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_16


丢弃指定轴上的项

丢弃某条轴上的一个或多个项很简单,只要有一个索引数组或列表即可。由于需要执行一些数据整理和集合逻辑,所以drop方法返回的是一个在指定轴上删除了指定值的新对象


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_17


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_18


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_19


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_20


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_20


Pandas 索引、选取和过滤

● Series索引(obj[...])的工作方式类似于NumPy数组的索引,只不过Series的索引值不只是整数。

● 利用标签的切片运算与普通的Python切片运算不同,其末端是包含的(inclusive)。

● 对DataFrame进行索引其实就是获取一个或多个列

● 为了在DataFrame的行上进行标签索引,引入了专门的索引字段ix。

DataFrame的索引选项


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_22


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_23


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_24


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_25


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_26


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_27


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_28


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_29


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_30


Pandas 算术运算和数据对齐

● 对不同的索引对象进行算术运算

● 自动数据对齐在不重叠的索引处引入了NA值,缺失值会在算术运算过程中传播。

● 对于DataFrame,对齐操作会同时发生在行和列上。

● fill_value参数

● DataFrame和Series之间的运算


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_31


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_32


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_33


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_34


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_35


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_36


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_37


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_38


Pandas 函数应用和映射

● numpy的ufuncs(元素级数组方法)

● DataFrame的apply方法

● 对象的applymap方法(因为Series有一个应用于元素级的map方法)


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_39


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_40


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_41


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_42


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_43


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_44


Pandas 排序和排名

● 对行或列索引进行排序

● 对于DataFrame,根据任意一个轴上的索引进行排序

● 可以指定升序降序

● 按值排序

● 对于DataFrame,可以指定按值排序的列

● rank函数


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_45


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_46


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_47


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_48


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_49


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_50


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_51


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_52


Pandas 带有重复值的索引

● 对于重复索引,返回Series,对应单个值的索引则返回标量。


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_53


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_54


Pandas 汇总和计算描述统计

● 常用方法选项


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_55


Pandas 常用描述和汇总统计函数


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_56


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_57


● 数值型和非数值型的区别

● NA值被自动排查,除非通过skipna选项


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_58


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_59


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_60


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_61


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_62


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_63


Pandas 汇总和计算描述统计 相关系数与协方差

● 相关系数:相关系数是用以反映变量之间相关关系密切程度的统计指标。

● 协方差:从直观上来看,协方差表示的是两个变量总体误差的期望。如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值时另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值;如果两个变量的变化趋势相反,即其中一个变量大于自身的期望值时另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

Pandas 汇总和计算描述统计 唯一值以及成员资格

常用方法


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_64


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_65


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_66


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_67


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_68


Pandas 处理缺失数据

● NA处理方法


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_69


● NaN(Not a Number)表示浮点数和非浮点数组中的缺失数据

● None也被当作NA处理


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_70


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_71


Pandas 滤除缺失数据

● dropna

● 布尔索引

● DatFrame默认丢弃任何含有缺失值的行

● how参数控制行为,axis参数选择轴,thresh参数控制留下的数量


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_70


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_73


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_74


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_75


Pandas 填充缺失数据

● fillna

● inplace参数控制返回新对象还是就地修改


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_76


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_77


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_78


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_79


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_80


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_81


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_82


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_83


Pandas 层次化索引

● 使你能在一个轴上拥有多个(两个以上)索引级别。抽象的说,它使你能以低纬度形式处理高维度数据。

● 通过stack与unstack变换DataFrame


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_84


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_85


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_86


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_87


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_88


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_89


重新分级顺序

● 索引交换

● 索引重新排序


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_90


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_91


根据级别汇总统计

● 指定索引级别和轴


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_92


python dataframe 改数据 dataframe怎么修改数据_dataframe修改数据_93


层次化索引 使用DataFrame的列

● 将指定列变为索引

● 移除或保留对象

● reset_index恢复


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_94


python dataframe 改数据 dataframe怎么修改数据_pandas根据某列的值删除某行_95


整数索引

● 歧义的产生

● 可靠的,不考虑索引类型的,基于位置的索引。


python dataframe 改数据 dataframe怎么修改数据_pandas dataframe函数_96


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_97


python dataframe 改数据 dataframe怎么修改数据_pandas重新设置列索引_98


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_99


面板(Pannel)数据

通过三维ndarray创建pannel对象

● 通过ix[...]选取需要的数据

● 访问顺序:item -> major -> minor

● 通过stack展现面板数据


python dataframe 改数据 dataframe怎么修改数据_pandas reindex_100



python dataframe 改数据 dataframe怎么修改数据_pandas reindex_100