Pandas – 合并两个具有不同列的数据框架
Pandas支持三种类型的数据结构。它们是系列,数据框架和面板。数据框是一个二维的数据结构,这里的数据是以表格的形式存储的,即行和列。我们可以通过多种方式创建数据框。
在这里,我们使用python中的列表数据结构创建一个数据框。
# import required module
import pandas
# assign data
l=["vignan","it","sravan","subbarao"]
# create data frame
df = pandas.DataFrame(l)
# display dataframe
df
输出:
在上面的例子中,我们创建了一个数据框架。让我们合并这两个具有不同列的数据框。我们可以使用concat()方法来连接不同的列。
语法: pandas.concat(objs: Union[Iterable[‘DataFrame’], Mapping[Label, ‘DataFrame’]], axis=’0′, join: str = “‘outer'”)
- DataFrame:它是数据框架的名称。
- Mapping: 它指的是映射索引和数据框架列。
- axis:0指的是行axis,1指的是列axis。
- join: 连接的类型。
注意:如果数据框架列是匹配的。那么空值就会被NaN值所取代。
一步一步实现:
- 打开jupyter笔记本
- 导入必要的模块
- 创建一个数据框架
- Perform operations
- 分析结果。
以下是基于上述方法的一些例子:
示例 1
在这个例子中,我们将根据学院来串联学生的分数。
# 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
输出:
# 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
输出:
# concat dataframes
pd.concat([df, df1], axis=0, ignore_index=True)
# concat when axis = 1
pd.concat([df, df1], axis=1, ignore_index=True)
示例 2:
储存分数和科目详情
# 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
输出:
# 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
输出:
# concatenating data frame
pd.concat([df, df1], axis=0, ignore_index=True)
输出: