通过匹配的ID号合并两个Pandas数据框

通过匹配的ID号合并两个Pandas数据框

在这篇文章中,我们将看到如何根据匹配的ID号码来合并两个数据框架。

步骤

  • 创建第一个数据框架
  • 创建第二个数据框
  • 选择要匹配的列
  • 使用合并功能进行合并

语法: dataframe.merge(parameter)

  • Display result

下面给出了一些实现,通过使用带有适当值的所需参数来产生所需的结果。

示例:

# import pandas as pd
import pandas as pd
  
# creating dataframes as df1 and df2
df1 = pd.DataFrame({'ID': [1, 2, 3, 5, 7, 8], 
                    'Name': ['Sam', 'John', 'Bridge',
                             'Edge', 'Joe', 'Hope']})
  
df2 = pd.DataFrame({'ID': [1, 2, 4, 5, 6, 8, 9],
                    'Marks': [67, 92, 75, 83, 69, 56, 81]})
  
# merging df1 and df2 by ID
# i.e. the rows with common ID's get
# merged i.e. {1,2,5,8}
df = pd.merge(df1, df2, on="ID")
print(df)

输出 :

通过匹配的ID号合并两个Pandas数据框

Merged Dataframe

合并两个带有ID列的数据框,左边数据框的所有ID,即合并函数的第一个参数。df2中不存在的ID在该行的列中得到一个NaN值。

例子2 :

# import pandas as pd
import pandas as pd
  
# creating dataframes as df1 and df2
df1 = pd.DataFrame({'ID': [1, 2, 3, 5, 7, 8], 
                    'Name': ['Sam', 'John', 'Bridge',
                             'Edge', 'Joe', 'Hope']})
  
df2 = pd.DataFrame({'ID': [1, 2, 4, 5, 6, 8, 9],
                    'Marks': [67, 92, 75, 83, 69, 56, 81]})
  
# merging df1 and df2 by ID
# i.e. the rows with common ID's get merged
# with all the ID's of left dataframe i.e. df1
# and NaN for columns of df2 where ID do not match
df = pd.merge(df1, df2, on="ID", how="left")
print(df)

输出 :

通过匹配的ID号合并两个Pandas数据框

Merged Dataframe

合并两个带有ID列的数据框架,合并的是右边数据框架的所有ID,即合并函数的第二个参数。与df1不匹配的ID在该列中得到一个NaN值。

例子3 :

# import pandas as pd
import pandas as pd
  
# creating dataframes as df1 and df2
df1 = pd.DataFrame({'ID': [1, 2, 3, 5, 7, 8], 
                    'Name': ['Sam', 'John', 'Bridge', 
                             'Edge', 'Joe', 'Hope']})
  
df2 = pd.DataFrame({'ID': [1, 2, 4, 5, 6, 8, 9],
                    'Marks': [67, 92, 75, 83, 69, 56, 81]})
  
# merging df1 and df2 by ID
# i.e. the rows with common ID's get merged
# with all the ID's of right dataframe i.e. df2
# and NaN values for df1 columns where ID do not match
df = pd.merge(df1, df2, on="ID", how="right")
print(df)

输出 :

通过匹配的ID号合并两个Pandas数据框

Merged Dataframe

用ID列合并两个数据框,两个数据框中所有匹配的数据。

例子4 :

# import pandas as pd
import pandas as pd
  
# creating dataframes as df1 and df2
df1 = pd.DataFrame({'ID': [1, 2, 3, 5, 7, 8],
                    'Name': ['Sam', 'John', 'Bridge',
                             'Edge', 'Joe', 'Hope']})
  
df2 = pd.DataFrame({'ID': [1, 2, 4, 5, 6, 8, 9],
                    'Marks': [67, 92, 75, 83, 69, 56, 81]})
  
# merging df1 and df2 by ID
# i.e. the rows with common ID's get merged
# with all the ID's that match in both the Dataframe
df = pd.merge(df1, df2, on="ID", how="inner")
print(df)

输出 :

通过匹配的ID号合并两个Pandas数据框

Merged Dataframe

合并两个带有ID列的数据框架,其中包括两个数据框架的所有ID,以及在两个数据框架中都找不到ID的列的NaN值。

例子5 :

# import pandas as pd
import pandas as pd
  
# creating dataframes as df1 and df2
df1 = pd.DataFrame({'ID': [1, 2, 3, 5, 7, 8],
                    'Name': ['Sam', 'John', 'Bridge',
                             'Edge', 'Joe', 'Hope']})
  
df2 = pd.DataFrame({'ID': [1, 2, 4, 5, 6, 8, 9],
                    'Marks': [67, 92, 75, 83, 69, 56, 81]})
  
# merging df1 and df2 by ID
# i.e. the rows with common ID's get merged
# with all the ID's of both the dataframes
# and NaN values for the columns where the ID's 
# do not match
df = pd.merge(df1, df2, on="ID", how="outer")
print(df)

输出 :

通过匹配的ID号合并两个Pandas数据框

Merged DataFrame

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程