在数据分析中,经常需要对来自不同数据源的表进行合并操作。Pandas提供了强大的merge方法实现表合并,我们可以通过指定columns进行指定列上的合并。
假设有两张表df1和df2:
df1 = pd.DataFrame({
'col1': ['a', 'b', 'c'],
'col2': [1, 2, 3]
})
df2 = pd.DataFrame({
'col1': ['a', 'b', 'c'],
'col3': [4, 5, 6]
})
要在col1列上进行合并,可以这样写:
pd.merge(df1, df2, left_on='col1', right_on='col1')
输出:
col1 col2 col3
0 a 1 4
1 b 2 5
2 c 3 6
可以看到,df1和df2在col1列上的相同值进行了合并,而其他列都被保留了下来。
除了通过列名指定,也可以直接传入列对象:
pd.merge(df1, df2, left_on=df1['col1'], right_on=df2['col1'])
效果相同。
如果两表的合并列名不同,也可以分别指定:
df3 = pd.DataFrame({
'col_1': ['a', 'b', 'c'],
'col3': [7, 8, 9]
})
pd.merge(df1, df3, left_on='col1', right_on='col_1')
这样就可以实现通过指定不同的列名进行合并。
综上,Pandas的merge方法提供了强大的表合并功能,我们可以通过指定left_on和right_on实现指定列进行合并,解决由于列名不同而无法直接合并的问题。