在互联网行业中,无论你是开发、运营、数据还是算法,你或多或少都离不开数据。数据处理是一项基本且必要的技能。
在数据处理中,有许多操作使用常规方法可以做,但繁琐且代码臃肿。本文我将介绍 8 种数据处理的技巧,这些技巧几乎涵盖了数据科学所需要的操作。
1、Pivot
Pivot 将创建一个"透视表",该方法将数据中的现有列作为新表的元素(索引、列和值)进行重组,类似 Excel 中的透视表。
代码如下所示
df.pivot(index='foo', columns='bar', values='baz')
2、Melt
Melt 可视为 "unpivot",它将基于矩阵的数据(两个维度)转换为基于列表的数据(列表示值,行表示唯一的数据点),看下图更好理解。
代码如下所示
df.melt(id_vars=['A'], value_vars=['B','C'])
3、Explode
Explode 是最好用的函数了。当列分解时,列内的所有列自动展开,非列表项不受影响,空列表用 NaN 值表示。
代码如下所示
df.explode("A")
4、Stack
Stack 将列"堆叠"为数据列的索引。生成的 DataFrame 只有一列和两个级别的索引,这个在项目中经常使用。
代码如下所示
df.stack()
为了获取数据值,只需调用索引两次或者索引转列,如下:
df.loc["dog"].loc["height"]
5、Unstack
Unstack 就是 Stack 的患难兄弟了。取消删除多索引并将其拆解,将指定级别的索引转换为具有相应值的列。
代码如下所示
df.unstack(level=-1)
6、Merge
合并两个 df 是将它们按列在共享的"密钥"之间合并。此键允许合并表.默认情况下,完成的合并 df 将添加后缀和值列。
代码如下所示
df1.merge(df2, left_on='leftkey', right_on='rightkey')
7、Join
Join 通常优先于合并,它具有更简洁的语法和更广泛的可能性,以水平连接两个 DataFrame。Join 的语法如下:
df1.join(other=df2, on='common_key', how='join_method')
how 有四种方式,类似SQLleft
right
outer
inner
8、Concat
Merge 和 Join 一般为列合并。而按行合并可以使用 Concat。
代码如下所示
pd.concat([df1, df2])
总结
今天列举了数据处理中的最常用的操作,方法看似简单,能够灵活运用才是关键!
整理不易,有所收获,点个赞和爱心❤️