前言
本文主要记录我在阅读《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使用。书中可能还存在许许多多的错误,仍有待我们去发掘。每一次小小的发现都是大大的收获。
1万+

被折叠的 条评论
为什么被折叠?



