pandas中DataFrame的merge操作


前言

本文主要记录我在阅读《Python金融大数据分析》一书时,原本对书中DataFrame的merge操作有点疑惑,后来通过实验发现书上代码在现有环境下已经报错的事实。因此,进行整理记录。


一、merge操作是什么?

merge是对pandas的DataFrame对象进行合并的操作。其具体参数如下:

pandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
			 left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'),
			 copy=None, indicator=False, validate=None)

二、代码实验

1.新建DataFrame

代码如下:

import pandas as pd
df1 = pd.DataFrame(['100','200','300','400'],index=['a','b','c','d'],columns=['A',])
df2 = pd.DataFrame(['200','150','50'],index=['f','b','d'],columns=['B',])
c = pd.Series([250,150,50],index=['b','d','c'])
df1['C'] = c
df2['C'] = c

DataFrame输出如下:

在这里插入图片描述
在这里插入图片描述

2.merge操作

例1:默认情况下,以C作为合并列

pd.merge(df1,df2)

在这里插入图片描述
例2:显性设置合并列为C

pd.merge(df1,df2,on='C')

在这里插入图片描述
例3:设置外连接,可以理解为并集,默认还是以C为合并列

pd.merge(df1,df2,how='outer')

在这里插入图片描述
例4:左DataFrame以A列为合并列,右DataFrame以B列为合并列

pd.merge(df1,df2,left_on='A',right_on='B')

在这里插入图片描述
例5:左DataFrame以A列为合并列,右DataFrame以B列为合并列,并集

pd.merge(df1,df2,left_on='A',right_on='B',how='outer')

在这里插入图片描述
例6:左DataFrame以索引为合并列,右DataFrame以索引为合并列

pd.merge(df1,df2,left_index=True,right_index=True)

在这里插入图片描述
例7:企图以C为合并列,同时左DataFrame以索引为合并列

pd.merge(df1,df2,left_index=True,on='C')

在这里插入图片描述
系统会抛出合并异常,说合并列和索引不能同时设置,MergeError: Can only pass argument “on” OR “left_index” and “right_index”, not a combination of both.


总结

以上就是要记录/勘误的内容,本文仅仅简单介绍了pandas中DataFrame的merge使用。书中可能还存在许许多多的错误,仍有待我们去发掘。每一次小小的发现都是大大的收获。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾师土匪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值