在互联网行业中,无论你是开发、运营、数据还是算法,你或多或少都离不开数据。数据处理是一项基本且必要的技能。
在数据处理中,有许多操作使用常规方法可以做,但繁琐且代码臃肿。本文我将介绍 8 种数据处理的技巧,这些技巧几乎涵盖了数据科学所需要的操作。
1、Pivot
Pivot 将创建一个"透视表",该方法将数据中的现有列作为新表的元素(索引、列和值)进行重组,类似 Excel 中的透视表。
代码如下所示
df.pivot(index='foo', columns='bar', values='baz')
2、Melt
Melt 可视为 “unpivot”,它将基于矩阵的数据(两个维度)转换为基于列表的数据(列表示值,行表示唯一的数据点),看下图更好理解。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LbHFmfRu-1606530062903)(https://imgkr2.cn-bj.ufileos.com/ccf60013-51c6-494f-8c1e-25c9405777ac.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=32qLHkSXNkhmqJ8i6D6MVml9HSc%253D&Expires=1606613008)]
代码如下所示
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 有四种方式,类似SQL
- left
- right
- outer
- inner
8、Concat
Merge 和 Join 一般为列合并。而按行合并可以使用 Concat。
代码如下所示
pd.concat([df1, df2])
总结
今天列举了数据处理中的最常用的操作,方法看似简单,能够灵活运用才是关键!
技术交流
欢迎转载、收藏本文,码字不易,有所收获点赞支持一下!
为方便进行学习交流,本号开通了技术交流群,添加方式如下:
直接添加小助手微信号:pythoner666,备注:CSDN+python,或者按照如下方式添加均可!