📌  相关文章
📜  Pandas – 合并两个具有不同列的数据框

📅  最后修改于: 2022-05-13 01:54:45.571000             🧑  作者: Mango

Pandas – 合并两个具有不同列的数据框

Pandas支持三种数据结构。它们是系列、数据框和面板。数据框是一种二维数据结构,这里的数据以行和列的表格格式存储。我们可以通过多种方式创建数据框。

这里我们使用Python中的列表数据结构创建一个数据框。

Python3
# import required module
import pandas
  
# assig data
l=["vignan","it","sravan","subbarao"]
  
# create data frame
df = pandas.DataFrame(l)
  
# display dataframe
df


Python3
# importing pandas module
import pandas as pd
  
  
# dictionary with list object in 
# values ie college details
details = {
    'Name': ['Sravan', 'Sai', 'Mohan', 'Ishitha'],
    'College': ['Vignan', 'Vignan', 'Vignan', 'Vignan'],
    'Physics': [99, 76, 71, 93],
    'Chemistry': [97, 67, 65, 89],
    'Data Science': [93, 65, 65, 85]
}
  
  
# converting to dataframe using DataFrame()
df = pd.DataFrame(details)
  
  
# print data frame
df


Python3
# creating another data
details1 = {
    'Name': ['Harsha', 'Saiteja', 'abhilash', 'harini'],
    'College': ['vvit', 'vvit', 'vvit', 'vvit'],
    'Physics': [69, 76, 51, 43],
    'Chemistry': [67, 67, 55, 89],
    'Maths': [73, 65, 61, 85]
}
  
# create dataframe
df1 = pd.DataFrame(details1)
  
  
# display dataframe
df1


Python3
# concat dataframes
pd.concat([df, df1], axis=0, ignore_index=True)


Python3
# concat when axis = 1
pd.concat([df, df1], axis=1, ignore_index=True)


Python3
# Import pandas library
import pandas as pd
  
# initialize list of lists
data = [['sravan', 98.00], ['jyothika', 90.00], ['vijay', 79.34]]
  
# Create the pandas DataFrame
df = pd.DataFrame(data, columns=['Name', 'Marks'])
  
# print dataframe.
df


Python3
# initialize list of lists
data1 = [['Haseen', 88.00, 5], ['ramya', 54.00, 5], ['haritha', 56.34, 4]]
  
# Create the pandas DataFrame
df1 = pd.DataFrame(
    data1, columns=['Name', 'Marks', 'Total subjects registered'])
  
# print dataframe.
df1


Python3
# concatenating data frame
pd.concat([df, df1], axis=0, ignore_index=True)


输出:

在上面的示例中,我们创建了一个数据框。让我们合并具有不同列的两个数据框。可以使用concat()加入不同的列 方法。

注意:如果数据框列匹配。然后空值被 NaN 值替换。

循序渐进的方法:

  • 打开 jupyter 笔记本
  • 导入必要的模块
  • 创建数据框
  • 执行操作
  • 分析结果。

以下是基于上述方法的一些示例:

示例 1

在这个例子中,我们将根据大学连接学生的分数。

蟒蛇3

# importing pandas module
import pandas as pd
  
  
# dictionary with list object in 
# values ie college details
details = {
    'Name': ['Sravan', 'Sai', 'Mohan', 'Ishitha'],
    'College': ['Vignan', 'Vignan', 'Vignan', 'Vignan'],
    'Physics': [99, 76, 71, 93],
    'Chemistry': [97, 67, 65, 89],
    'Data Science': [93, 65, 65, 85]
}
  
  
# converting to dataframe using DataFrame()
df = pd.DataFrame(details)
  
  
# print data frame
df

输出:

蟒蛇3

# creating another data
details1 = {
    'Name': ['Harsha', 'Saiteja', 'abhilash', 'harini'],
    'College': ['vvit', 'vvit', 'vvit', 'vvit'],
    'Physics': [69, 76, 51, 43],
    'Chemistry': [67, 67, 55, 89],
    'Maths': [73, 65, 61, 85]
}
  
# create dataframe
df1 = pd.DataFrame(details1)
  
  
# display dataframe
df1

输出:

蟒蛇3

# concat dataframes
pd.concat([df, df1], axis=0, ignore_index=True)

蟒蛇3

# concat when axis = 1
pd.concat([df, df1], axis=1, ignore_index=True)

示例 2:

存储标记和主题详细信息

蟒蛇3

# Import pandas library
import pandas as pd
  
# initialize list of lists
data = [['sravan', 98.00], ['jyothika', 90.00], ['vijay', 79.34]]
  
# Create the pandas DataFrame
df = pd.DataFrame(data, columns=['Name', 'Marks'])
  
# print dataframe.
df

输出:

蟒蛇3

# initialize list of lists
data1 = [['Haseen', 88.00, 5], ['ramya', 54.00, 5], ['haritha', 56.34, 4]]
  
# Create the pandas DataFrame
df1 = pd.DataFrame(
    data1, columns=['Name', 'Marks', 'Total subjects registered'])
  
# print dataframe.
df1

输出:

蟒蛇3

# concatenating data frame
pd.concat([df, df1], axis=0, ignore_index=True)

输出: