Pandas 数据合并与拼接详解
Pandas 提供了 merge、join 和 concat 三种核心方法用于数据的合并与拼接。merge 方法主要基于两个 DataFrame 的共同列进行合并;join 方法主要基于两个 DataFrame 的索引进行合并;concat 方法是对 Series 或 DataFrame 进行行拼接或列拼接。
1. Merge 方法
Pandas 的 merge 方法是基于共同列,将两个 DataFrame 连接起来。merge 方法的主要参数如下:
- left/right:左/右位置的 DataFrame。
- how:数据合并的方式。
left:基于左 DataFrame 列的数据合并。right:基于右 DataFrame 列的数据合并。outer:基于列的数据外合并(取并集)。inner:基于列的数据内合并(取交集),默认为'inner'。
- on:用来合并的列名,这个参数需要保证两个 DataFrame 有相同的列名。
- left_on/right_on:左/右 DataFrame 合并的列名,也可为索引,数组和列表。
- left_index/right_index:是否以 index 作为数据合并的列名,True 表示是。
- sort:根据 DataFrame 合并的 keys 排序,默认是。
- suffixes:若有相同列且该列没有作为合并的列,可通过 suffixes 设置该列的后缀名,一般为元组和列表类型。
1.1 内连接 (Inner Join)
how='inner',DataFrame 的链接方式为内连接,我们可以理解基于共同列的交集进行连接,参数 on 设置连接的共有列名。
import pandas as pd
import numpy as np
# 定义 df1
df1 = pd.DataFrame({
'alpha':['A','B','B','C','D','E'],
'feature1':[1,1,2,3,3,1],
'feature2':['low','medium',,,,]})
df2 = pd.DataFrame({
:[,,,],
:[,,,],
:[,,,],
:np.array([,,,])})
df3 = pd.merge(df1, df2, how=, on=)
(df3)


