• pandas的疯狂融合之路


    a61f1e18063c01796153b8c018f6e5c6.jpeg

    文 | 清香客

    来源:Python 技术「ID: pythonall」

    57c861cd79b04c0537bf0841cae792f5.jpeg

    大家好,我是派森酱。

    上次介绍了pandas的两表连接merge技能,有的酱友留言说那么点数据用excel就挺快,在这里说明一下,文章内容只是用部分代码来介绍功能的用法和最后的结果显示,不是真的用几个G的文件来展示,也展示不过来的。

    熟悉了功能怎么用,就可以用自己的数据来操作了。

    merge可以匹配两表的内容,但是merge只能连接两个表,不能多表连接,这次说说能用于多表连接的功能concat

    还是用上次的数据,这次多加了一个DataFrame,用于显示结果。

    初始化数据

    1. python
    2. import pandas as pd
    3. df1 = pd.DataFrame({
    4.     '姓名': ['张三''李四''王五''刘六''齐四'],
    5.     '号码': ['123''456''789''987''654']
    6. })
    7. df2 = pd.DataFrame({
    8.     '姓名': ['张三''张三''张三''李四''李四''李四''李四''王五''王五''刘玉''胡军''刘玉''刘六''刘六''刘六''刘六''刘克''刘玉''齐七''齐七''齐七''齐七''冯亮''刘玉''王云'],
    9.     '号码': ['123''456''789''123''123''456''456''456''456''456''741''741''741''741''741''789''789''789''789''789''852''852''852''852''852'],
    10.     '日期': ['2022-03-13''2022-03-06''2022-01-30''2022-01-04''2022-02-26''2022-03-26''2022-03-06''2022-01-30''2022-01-29''2022-03-13''2022-03-06''2022-02-19''2022-02-04''2022-03-10''2022-04-19''2022-03-10''2022-01-29''2022-02-19''2022-03-06''2022-03-26''2022-01-04''2022-02-04''2022-04-19''2022-02-26''2022-03-06'],
    11.     '方案': ['G1012''G1022''G1002''G1007''G1017''G1023''G1018''G1003''G1008''G1013''G1020''G1015''G1010''G1005''G1025''G1004''G1009''G1014''G1019''G1024''G1006''G1011''G1026''G1016''G1021']
    12. })
    13. df3 = pd.DataFrame({
    14.     '姓名': ['张三''李四''王五''刘六''齐四'],
    15.     '号码': ['123''456''789''987''654'],
    16.     '年龄': ['25''36''41''12''54']
    17. })

    用法

    说明

    concat是一个轴向连接的功能,可以沿着一条轴将多个表对象堆叠到一起:how的模式是outer

    axis=0是上下拼接,列重复的会自动合并,axis=1是左右拼接,行或索引重复的会自动合并

    上下拼接
    先连接两个表:
    df = pd.concat([df1, df2], axis=0)

    输出:

    a06c198a3d90eef4bdf95958f9a6571c.png

    两个表的重复列名自动合并了,缺失的值为NaN

    连接三个表:
    df = pd.concat([df1, df2, df3], axis=0)

    输出:

    21972687ee9cb83268cc6f6fcf50a3b9.png

    同时增加了另一个表的内容和增加了一列,缺失值同样为NaN

    左右拼接
    直接拼接三个表:
    df = pd.concat([df1, df2, df3], axis=1)

    输出:

    1f4b1418d35f55021e345bd0000723af.png

    这次是在右边拼接的,行是按内容行最多的来算,其它的内容为空,列一直在增加,是把三个表的列都拼接上了。

    总结

    mergeconcat的表连接,都有各自的特点,我们需要按自己所需要的结果去用,想匹配内容的,就用merge,想全部连接到一起的,就用concat

    PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

    老规矩,酱友们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

    85d9f8b3531123fe175adf73112f7cea.gif

    代码获取方式

    识别文末二维码,回复:清香客

    7279f7d61dfefa81b113b202c8d71b38.png

    b493b5aa352b48c07e98bd3ff10a2f86.png

  • 相关阅读:
    5+m6A+预后模型+WGCNA,简单又高效,学习下这篇思路吧
    HBase之Compaction
    Docker rpm方式安装
    升级打怪课堂的题库更新了!
    【线上Java项目部署Bug记录】天翼云80端口不能使用,即使暴露了也不行!!!
    NCCL后端
    【数据结构与算法】杨辉三角,相同字符的截取以及扑克牌
    搭建WordPress
    【vue2第八章】工程化开发和使用脚手架和文件结构
    LeetCode 23. 合并 K 个升序链表
  • 原文地址:https://blog.csdn.net/weixin_48923393/article/details/126716532