如何使用Merge连接Pandas数据框架

如何使用Merge连接Pandas数据框架

连接和合并DataFrames是数据分析和机器学习任务开始的核心过程。这是每个数据分析师或数据科学家应该掌握的工具箱之一,因为在大多数情况下,数据来自多个来源和文件。在本教程中,你将学习如何使用合并技术在pandas中连接数据帧。更具体地说,我们将练习沿着行和列连接DataFrames的方法。

Getting Started

与DataFrames相关的最广泛使用的操作是合并操作。两个DataFrames可能持有关于同一实体的不同种类的信息,它们可能有一些相同的列,所以我们需要在pandas中合并这两个数据框架,以获得更好的可靠性代码。为了连接这些DataFrame,pandas提供了各种函数,如join()、concat()、merge()等。在本节中,你将练习使用pandas的merge()函数。基本上有四种合并的方法。

  • inner join
  • outer join
  • right join
  • left join

Inner join

从名字本身就可以看出,内联接保留了左右两个数据框中都存在合并 “on “值的记录。

Inner join

现在让我们创建两个数据框,然后尝试用内连接来合并它们。

import numpy as np
import pandas as pd
 
 
left = pd.DataFrame({'Sr.no': ['1', '2', '3', '4', '5'],
                    'Name': ['Rashmi', 'Arun', 'John',
                             'Kshitu', 'Bresha'],
                    'Roll No': ['1', '2', '3', '4', '5']})
 
right = pd.DataFrame({'Sr.no': ['2', '4', '6', '7', '8'],
                    'Gender': ['F', 'M', 'M', 'F', 'F'],
                    'Interest': ['Writing', 'Cricket', 'Dancing',
                                 'Chess', 'Sleeping']})
                         
# Merging the dataframes                    
pd.merge(left, right, how ='inner', on ='Sr.no')
Python

输出:

如何使用Merge连接Pandas数据框架

Outer join

外联接返回左边数据框的所有记录,右边数据框的所有记录,并在可能的情况下匹配记录,在其他地方使用NaN。但是如果数据框架是完整的,那么我们就会得到相同的输出。

如何使用Merge连接Pandas数据框架

import numpy as np
import pandas as pd
 
 
left = pd.DataFrame({'Sr.no': ['1', '2', '3', '4', '5'],
                    'Name': ['Rashmi', 'Arun', 'John',
                             'Kshitu', 'Bresha'],
                    'Roll No': ['1', '2', '3', '4', '5']})
 
right = pd.DataFrame({'Sr.no': ['2', '4', '6', '7', '8'],
                    'Gender': ['F', 'M', 'M', 'F', 'F'],
                    'Interest': ['Writing', 'Cricket', 'Dancing',
                                 'Chess', 'Sleeping']})
                         
# Merging the dataframes                    
pd.merge(left, right, how ='outer', on ='Sr.no')
Python

输出:

如何使用Merge连接Pandas数据框架

Left join

通过左连接,第一个数据框架中的所有记录都将被显示,无论第一个数据框架中的键是否能在第二个数据框架中找到。而对于第二个数据框架,只有在第一个数据框架中可以找到的、具有第二个数据框架中的键的记录才会被显示。

如何使用Merge连接Pandas数据框架

import numpy as np
import pandas as pd
 
 
left = pd.DataFrame({'Sr.no': ['1', '2', '3', '4', '5'],
                    'Name': ['Rashmi', 'Arun', 'John',
                             'Kshitu', 'Bresha'],
                    'Roll No': ['1', '2', '3', '4', '5']})
 
right = pd.DataFrame({'Sr.no': ['2', '4', '6', '7', '8'],
                    'Gender': ['F', 'M', 'M', 'F', 'F'],
                    'Interest': ['Writing', 'Cricket',
                                 'Dancing', 'Chess',
                                 'Sleeping']})
                         
# Merging the dataframes                    
pd.merge(left, right, how ='left', on ='Sr.no')
Python

输出:

如何使用Merge连接Pandas数据框架

Right join

对于右键连接,第二个数据框架的所有记录都将被显示。然而,只有在第一个数据框架中的键可以在第二个数据框架中找到的记录才会被显示。

如何使用Merge连接Pandas数据框架

import numpy as np
import pandas as pd
 
 
left = pd.DataFrame({'Sr.no': ['1', '2', '3', '4', '5'],
                    'Name': ['Rashmi', 'Arun', 'John',
                             'Kshitu', 'Bresha'],
                    'Roll No': ['1', '2', '3', '4', '5']})
 
right = pd.DataFrame({'Sr.no': ['2', '4', '6', '7', '8'],
                    'Gender': ['F', 'M', 'M', 'F', 'F'],
                    'Interest': ['Writing', 'Cricket', 'Dancing',
                                 'Chess', 'Sleeping']})
                         
# Merging the dataframes                    
pd.merge(left, right, how ='right', on ='Sr.no')
Python

输出:

如何使用Merge连接Pandas数据框架

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册