美文网首页
Python-科学计算-pandas-06-Df合并

Python-科学计算-pandas-06-Df合并

作者: Data_Python_VBA | 来源:发表于2019-11-27 19:23 被阅读0次

    微信公众号原文

    系统:Windows 7
    语言版本:Anaconda3-4.3.0.1-Windows-x86_64
    编辑器:pycharm-community-2016.3.2

    • 这个系列讲讲Python的科学计算版块
    • 今天讲讲pandas模块:将两个Df进行合并

    Part 1:示例

    1. 已知df_1,有3列["time", "pos", "value1"]
    2. 已知df_2,有3列["pos", "value2", "value3"]
    3. pos列作为连接,将两个Df合并成一个Df,效果如下图

    合并

    1.png

    Part 2:代码

    import pandas as pd
    
    dict_1 = {"time": ["2019-11-2", "2019-11-2", "2019-11-2"],
              "pos": ["P1", "P2", "P3"],
              "value1": [0.5, 0.8, 1.0]}
    
    df_1 = pd.DataFrame(dict_1, columns=["time", "pos", "value1"])
    
    
    dict_2 = {"pos": ["P1", "P2", "P3", "P4"],
              "value2": [-1, -2, -3, -4],
              "value3": [1, 2, 3, 4]}
    
    df_2 = pd.DataFrame(dict_2, columns=["pos", "value2", "value3"])
    
    print("\ndf_1")
    print(df_1)
    
    print("\ndf_2")
    print(df_2)
    
    df_merge_1 = pd.merge(df_1, df_2, how='left', on='pos')
    print("\ndf_merge_1")
    print(df_merge_1)
    
    df_merge_2 = pd.merge(df_2, df_1, how='left', on='pos')
    print("\ndf_merge_2")
    print(df_merge_2)
    
    

    代码截图

    2.png

    Part 3:部分代码解读

    1. pd.merge(df_1, df_2, how='left', on='pos'),以pos列作为df_1和df_2的关联列,采用左连接的方式
      • 左连接,可以简单理解为行采用左边的df_1作为基准,在示例中发现df_merge_1没有P4点
      • 同理df_merge_2timevalue1没有数据
    2. 那么使用场景是什么呢?结合列与列之间的运算,会有一番新天地

    本文为原创作品,欢迎分享朋友圈

    长按图片识别二维码,关注本公众号
    Python 优雅 帅气


    12x0.8.jpg

    相关文章

      网友评论

          本文标题:Python-科学计算-pandas-06-Df合并

          本文链接:https://www.haomeiwen.com/subject/tkrmwctx.html