合并两个具有复杂条件的Pandas数据框架

合并两个具有复杂条件的Pandas数据框架

在这篇文章中,我们来讨论如何合并两个具有复杂条件的Pandas数据框架。Pandas中的数据框架可以使用pandas.merge()方法进行合并。

语法:

pandas.merge(parameters)

返回:两个合并对象的DataFrame。

在处理数据集时,可能需要合并两个具有某些复杂条件的数据框架,下面是一些合并两个具有某些复杂条件的数据框架的例子。

例子1 :

用merge()函数合并两个数据框架,参数为两个数据框架。

# importing pandas as pd
import pandas as pd
  
# creating dataframes
df1 = pd.DataFrame({'ID': [1, 2, 3, 4], 
                    'Name': ['John', 'Tom', 'Simon', 'Jose']})
  
df2 = pd.DataFrame({'ID': [1, 2, 3, 5], 
                    'Class': ['Second', 'Third', 'Fifth', 'Fourth']})
  
# merging df1 and df2 with merge function
df = pd.merge(df1, df2)
print(df)

输出 :

合并两个具有复杂条件的Pandas数据框架

例子2 :

用merge()函数将两个数据框架合并到数据框架的某些指定列名上。

# importing pandas as pd
import pandas as pd
  
# creating dataframes
df1 = pd.DataFrame({'Name': ['John', 'Tom', 'Simon', 'Jose'],
                    'Age': [5, 6, 4, 5]})
  
df2 = pd.DataFrame({'Name': ['John', 'Tom', 'Jose'],
                    'Class': ['Second', 'Third', 'Fifth']})
  
# merging df1 and df2 with merge function 
# with the common column as Name
df = pd.merge(df1, df2, on='Name')
print(df)

输出 :

合并两个具有复杂条件的Pandas数据框架

例子3 :

用第一个数据框中的所有值合并两个数据框,用NaN表示第二个数据框中不匹配的值。同样可以用第二个数据框的所有值进行合并,我们要做的只是在合并时给出数据框的位置,即左边或右边。

# importing pandas as pd
import pandas as pd
  
# creating dataframes
df1 = pd.DataFrame({'Name': ['John', 'Tom', 'Simon', 'Jose'], 
                    'Age': [5, 6, 4, 5]})
  
df2 = pd.DataFrame({'Name': ['John', 'Tom', 'Jose'],
                    'Class': ['Second', 'Third', 'Fifth']})
  
# merging df1 and df2 with merge function 
# with the common column as Name
df = pd.merge(df1, df2, on='Name', how="left")
print(df)

输出 :

合并两个具有复杂条件的Pandas数据框架

例子4 :

使用外部连接的合并函数将两个数据框架的所有值合并起来。同样的,也可以用内联接来连接两个数据框。

# importing pandas as pd
import pandas as pd
  
# creating dataframes
df1 = pd.DataFrame({'Name':['John', 'Tom', 'Simon', 'Jose'],
                    'Age':[5, 6, 4, 5]})
  
df2 = pd.DataFrame({'Name':['John', 'Tom', 'Philip'],
                    'Class':['Second', 'Third', 'Fifth']})
  
# merging df1 and df2 with merge function 
# with the records of both the dataframes
df = pd.merge(df1, df2, how = "outer")
print(df)

输出 :

合并两个具有复杂条件的Pandas数据框架

例子5 :

用指标值合并数据帧,看哪个数据帧有该特定记录。

# importing pandas as pd
import pandas as pd
  
# creating dataframes
df1 = pd.DataFrame({'Name':['John', 'Tom', 'Simon', 'Jose'],
                    'Age':[5, 6, 4, 5]})
  
df2 = pd.DataFrame({'Name':['John', 'Tom', 'Simon', 'Tom'],
                    'Class':['Second', 'Third', 'Fifth', 'Fourth']})
  
# merging df1 and df2 with merge function 
# with the records of both the dataframes
df = pd.merge(df1, df2, how = 'left', indicator = True)
print(df)

输出 :

合并两个具有复杂条件的Pandas数据框架

例子6 :

在两个数据框中合并具有一对多关系的数据框。同样可以用多对多、一对一和一对多类型的关系来合并。

# importing pandas as pd
import pandas as pd
  
# creating dataframes
df1 = pd.DataFrame({'Name':['John', 'Tom', 'Simon', 'Jose'],
                    'Age':[5, 6, 4, 5]})
  
df2 = pd.DataFrame({'Name':['John', 'Tom', 'Simon', 'Tom'],
                    'Class':['Second', 'Third', 'Fifth', 'Fourth']})
  
# merging df1 and df2 with merge function with 
# the one to many relations from both the dataframes
df = pd.merge(df1, df2, validate = 'one_to_many')
print(df)

输出 :

合并两个具有复杂条件的Pandas数据框架

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程