pandas DataFrame合并:merge()

ps:我只说我用到的

1、功能

用于合并 两个 df。

2、语法

merge(left, right, left_ont, right_on, how)

参数:

  • left:df对象
  • right:df对象
  • left_ont:left对象用于连接的列名
  • right_ont:right对象用于连接的列名
  • how:连接方式
    • left:左连接,返回包括左表中的所有记录和右表中连接字段相等的记录。
    • right (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录
    • inner (等值连接或者叫内连接):只返回两个表中连接字段相等的行。

3、示例

假设有如下df:

df1:

   id       name           
0  28672       一号楼  
1  62272    二号楼  
2  66368    三号楼  
3  24128    四号楼  
4  12896    五号楼

df2:

       local_id         value           receivetime
0   26090           0.0                2022-08-31
1   26118           27                2022-08-31
2   28672           0.0                2022-08-31
3   40960           0.0                2022-08-31
4   62272            87                2022-08-31
5   66368           0.0                2022-08-31
6   24128              19                2022-08-31
7   26094           84                2022-08-31
8   12896            83               2022-08-31

执行df1和df2的合并:

……

df3 = pd.merge(df1, df2, left_on="id", right_on="local_id", how="left")
……

    id       name      local_id      value        c_receivetime
0   28672    一号楼     28672         0.0          2022-08-31
1   62272    二号楼     62272         87           2022-08-31
2   66368    三号楼     66368         0.0          2022-08-31
3   24128    四号楼     24128         19           2022-08-31
4   12896    五号楼     12896         83           2022-08-31
  • 按照df1的id 和df2的local_id进行合并
  • 保留df1中所有记录,df2中与df1中相同的记录。

4、indicator参数

indicator=Truepandasmerge 方法的一个选项,用于在合并的结果中添加一个额外的列 _merge,该列指示每行的合并状态。在这种情况下,如果某行的 _merge 列的值为 'left_only',表示该行只在左侧的 DataFrame(last_monitor_df)中存在,但在右侧的 DataFrame(query_monitor_df)中不存在。

同理还有bothright_only


发表评论

评论列表,共 0 条评论

    暂无评论