pandas的merge方法详解

原创
2019/12/31 18:50
阅读数 5.6K

merge参数

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=True,
    indicator=False,
    validate=None,
)
参数 说明
left 左表
right 右表
how 连接方式,inner、left、right、outer,默认为inner
on 用于连接的列名称
left_on 左表用于连接的列名
right_on 右表用于连接的列名
left_index 是否使用左表的行索引作为连接键,默认False
right_index 是否使用右表的行索引作为连接键,默认False
sort 默认为False,将合并的数据进行排序
copy 默认为True,总是将数据复制到数据结构中,设置为False可以提高性能
suffixes 存在相同列名时在列名后面添加的后缀,默认为('_x', '_y')
indicator 显示合并数据中数据来自哪个表

left_on与right_on主要用于连接的2个表列名不同的时候

DataFrame有一个实例方法join,相当于merge方法的参数left_index=True和right_index=True

inner、left、right、outer

连接方式

concat

concat可以把多个DataFrame拼接为一个DataFrame

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0, 20, (5, 2)), columns=['A', 'B'])
print(df)

data = [df[0:2], df[3:]]
print(pd.concat(data))

append

append用于追加行,也concat是pd的静态函数不同,append是DataFrame的方法。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0, 20, (3, 2)), columns=['A', 'B'])
print(df)

narry = np.random.randint(0, 20, (2, 2))
data = pd.DataFrame(narry, columns=['A', 'B'])
print(df.append(data, ignore_index=True))

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部