Python数据分析神器——pandas(进阶教程)

文章目录合并数据集索引的合并轴向连接合并重叠数据重塑和轴向旋转重塑层次化索引将“长格式”旋转为“宽格式”数据转换移除重复数据利用函数或映射进行数据转换替换值重命名轴索引离散化和面元划分
合并数据集

pandas对象中的数据可以通过一些内置的方式进行合并:

pandas.merge 可以根据一个或多个键将不同DataFrame中的行连接起来
pandas.concat 可以沿着一条轴将多个对象堆叠到一起
实例方法 combine_first 可以将重复数据连接在一起,用一个对象中的值填充另一个对象中的缺失值

默认情况下,merge做的是“inner”连接,结果中的键是交集。其他方式还有“left”、“right”以及“outer”。外连接求取的是键的并集,组合了左连接和右连接的效果
多对多连接产生的是行的笛卡尔积
在进行列——列连接时,DataFrame对象中的索引会被丢弃

在这里插入图片描述

索引的合并

有时候,DataFrame中的连接键位于其索引中。在这种情况下,可以传入left_index=True或right_index=True(或两个都传)以说明索引应该被用作连接键。

对于层次化索引的数据,必须以列表的形式指明用作合并键的多个列

DataFrame还有一个join实例方法,它能更为方便地实现按索引合并。它还可用于合并多个带有相同或相似索引的DataFrame对象,而不管它们之间有没有重叠的列

轴向连接

pandas的concat函数提供了轻松完成轴向连接的可靠方式
默认情况下,concat是在axis=0上进行合并,当然,我们也可以令axis=1
在这里插入图片描述

在这里插入图片描述

合并重叠数据

combine_first方法可以实现合并重叠数据,并且会进行数据对齐

df1 = pd.DataFrame({'a':[1.,np.nan,5.,np.nan],'b':[np.nan,2.,np.nan,6.],'c':range(2,18,4)})

df2 = pd.DataFrame({'a':[5.,4.,np.nan,3.,7.],'b':[np.nan,3.,4.,6.,8.]})

df1.combine_first(df2)

在这里插入图片描述

重塑和轴向旋转

有许多用于重新排列表格型数据的基础运算,这些函数也称作重塑或轴向旋转运算。

重塑层次化索引

stack:将数据的列“旋转”为行
unstack:将数据的行“旋转”为列

默认情况下,unstack操作的是最内层(stack也是如此)。传入分层级别的编号或名称即可对其他级别进行unstack操作

将“长格式”旋转为“宽格式”

DataFrame的pivot方法可以实现这个转换
在这里插入图片描述
在这里插入图片描述

数据转换
移除重复数据

DataFrame的duplicated方法返回一个布尔型Series,表示各行是否是重复行
drop_duplicates方法用于返回一个移除了重复行的DataFrame

duplicated和drop_duplicates默认保留的是第一个出现的值组合,我们可以通过传入take_last=True来保留最后一个

利用函数或映射进行数据转换

使用map可以实现元素级转换以及其他数据清理工作的便捷方式

替换值

replace提供了一种实现该功能的更简单、更灵活的方式
在这里插入图片描述

重命名轴索引

可以通过轴标签的map方法来操作轴标签
在这里插入图片描述
同样,rename也可以实现上述操作,特别地,rename可以结合字典型对象实现对部分轴标签的更新

rename 帮我们实现了: 复制DataFrame并对其索引和列标签进行赋值。如果希望就地修改某个数据,传入inplace=True即可实现

离散化和面元划分

在这里插入图片描述
在这里插入图片描述

qcut 是一个非常类似于cut的函数,它可以根据样本分位数对数据进行面元划分。
根据数据的分布情况,cut可能无法使各个面元中含有相同数量的数据点。而qcut由于使用的是样本分位数,因此可以实现此功能

作者:虐猫人薛定谔i

相关推荐

对vue中的数据劫持/数据代理/数据观察的理解

在这里插入图片描述

python基础教程:Python绘制正余弦函数图像的方法

在这里插入图片描述

python保存文件的几种方式

在这里插入图片描述

普通队列、双端队列的原理详解及其python实现