📅  最后修改于: 2023-12-03 15:33:24.007000             🧑  作者: Mango
Pandas是一种基于NumPy的开源数据分析工具。它可以处理不同类型的数据,并拥有更高层次的灵活性。在进行数据合并时,Pandas提供了不同类型的连接。
Inner Join也称为Inner Merge,是一种返回两个数据集中交集的连接方式。使用pd.merge函数进行连接时,选择how参数为'inner'即可使用该连接方式。
示例代码:
import pandas as pd
df1 = pd.DataFrame({'Name':['Alice', 'Bob', 'Charlie', 'David'],
'Age':[25, 30, 35, 35],
'City':['New York', 'Las Vegas', 'Los Angeles', 'Las Vegas']})
df2 = pd.DataFrame({'Name':['Bob', 'David', 'Edward', 'Fred'],
'Gender':['Male', 'Male', 'Male', 'Male']})
df3 = pd.merge(df1, df2, on='Name', how='inner')
print(df3)
以上代码中,df1中包含Name, Age和City列,df2中包含Name和Gender列。使用pd.merge函数将df1和df2连接时,指定how参数为'inner',连接基准是Name列,连接结果仅含df1和df2中的Name列交集,即Bob和David。
输出结果:
Name Age City Gender
0 Bob 30 Las Vegas Male
1 David 35 Las Vegas Male
Left Join也称为Left Outer Join,是一种返回左边数据集所有行,并将右边数据集中匹配到的行合并的连接方式。使用pd.merge函数进行连接时,选择how参数为'left'即可使用该连接方式。
示例代码:
import pandas as pd
df1 = pd.DataFrame({'Name':['Alice', 'Bob', 'Charlie', 'David'],
'Age':[25, 30, 35, 35],
'City':['New York', 'Las Vegas', 'Los Angeles', 'Las Vegas']})
df2 = pd.DataFrame({'Name':['Bob', 'David', 'Edward', 'Fred'],
'Gender':['Male', 'Male', 'Male', 'Male']})
df3 = pd.merge(df1, df2, on='Name', how='left')
print(df3)
以上代码中,df1中包含Name, Age和City列,df2中包含Name和Gender列。使用pd.merge函数将df1和df2连接时,指定how参数为'left',连接基准是Name列,除了连接结果中含有内连接的两个行(Bob和David)外,还将df1中的Charlie和Edward合并,同时在Gender列中对应的值留空值。
输出结果:
Name Age City Gender
0 Alice 25 New York NaN
1 Bob 30 Las Vegas Male
2 Charlie 35 Los Angeles NaN
3 David 35 Las Vegas Male
Right Join也称为Right Outer Join,是一种返回右边数据集所有行,并将左边数据集中匹配到的行合并的连接方式。使用pd.merge函数进行连接时,选择how参数为'right'即可使用该连接方式。
示例代码:
import pandas as pd
df1 = pd.DataFrame({'Name':['Alice', 'Bob', 'Charlie', 'David'],
'Age':[25, 30, 35, 35],
'City':['New York', 'Las Vegas', 'Los Angeles', 'Las Vegas']})
df2 = pd.DataFrame({'Name':['Bob', 'David', 'Edward', 'Fred'],
'Gender':['Male', 'Male', 'Male', 'Male']})
df3 = pd.merge(df1, df2, on='Name', how='right')
print(df3)
以上代码中,df1中包含Name, Age和City列,df2中包含Name和Gender列。使用pd.merge函数将df1和df2连接时,指定how参数为'right',连接基准是Name列,除了连接结果中含有内连接的两个行(Bob和David)外,还将df2中的Edward和Fred合并,同时在df1中对应的值留空值。
输出结果:
Name Age City Gender
0 Bob 30.0 Las Vegas Male
1 David 35.0 Las Vegas Male
2 Edward NaN NaN Male
3 Fred NaN NaN Male
Outer Join也称为Full Outer Join,是一种返回两个数据集中并集的连接方式。使用pd.merge函数进行连接时,选择how参数为'outer'即可使用该连接方式。
示例代码:
import pandas as pd
df1 = pd.DataFrame({'Name':['Alice', 'Bob', 'Charlie', 'David'],
'Age':[25, 30, 35, 35],
'City':['New York', 'Las Vegas', 'Los Angeles', 'Las Vegas']})
df2 = pd.DataFrame({'Name':['Bob', 'David', 'Edward', 'Fred'],
'Gender':['Male', 'Male', 'Male', 'Male']})
df3 = pd.merge(df1, df2, on='Name', how='outer')
print(df3)
以上代码中,df1中包含Name, Age和City列,df2中包含Name和Gender列。使用pd.merge函数将df1和df2连接时,指定how参数为'outer',连接基准是Name列,连接结果含有df1和df2中的所有行,当Name列含有交集时,合并对应的行,当某一数据集中找不到对应Name时,对应行的值留空值。
输出结果:
Name Age City Gender
0 Alice 25.0 New York NaN
1 Bob 30.0 Las Vegas Male
2 Charlie 35.0 Los Angeles NaN
3 David 35.0 Las Vegas Male
4 Edward NaN NaN Male
5 Fred NaN NaN Male