目录
前言
在数据处理和分析中,合并不同数据源的内容是一项常见的任务。本文将介绍如何使用Python中的Pandas库来合并不同结构的数据帧,实现行和列的合并操作。承接上篇文章,我们本篇文章写的是二维对象的变形
第一步:二维对象的变形
创建二维数组
v1=[10,20,30]
v2=['女','男','男']
k1=['1号','2号','3号']
sr1=pd.Series(v1,index=k1)
sr2=pd.Series(v2,index=k1)
df=pd.DataFrame({'年龄':sr1,'性别':sr2})
print(df)
# 年龄 性别
# 1号 10 女
# 2号 20 男
# 3号 30 男
#加上列
df['牌照']=[1,2,3]
print(df)
# 年龄 性别 牌照
# 1号 10 女 1
# 2号 20 男 2
# 3号 30 男 3
# 加上行
df.loc['4号']=[40,'女',4]
print(df)
# 年龄 性别 牌照
# 1号 10 女 1
# 2号 20 男 2
# 3号 30 男 3
# 4号 40 女 4
第二步:二维对象的合并
# 二维对象的合并
v1=[[10,'女'],[20,'男'],[30,'男'],[40,'女']]
v2=[[1,'是'],[2,'否'],[3,'是'],[4,'否']]
v3=[[50,'男',5,'是'],[60,'女',6,'是']]
k1=['1号','2号','3号','4号']
k2=['1号','2号','3号','4号']
k3=['5号','6号']
c1=['年龄','性别']
c2=['牌照','通过']
c3=['年龄','性别','牌照','通过']
df1=pd.DataFrame(v1,index=k1,columns=c1)
df2=pd.DataFrame(v2,index=k2,columns=c2)
df3=pd.DataFrame(v3,index=k3,columns=c3)
print(df1,df2,df3)
# 年龄 性别
# 1号 10 女
# 2号 20 男
# 3号 30 男
# 4号 40 女
# 牌照 通过
# 1号 1 是
# 2号 2 否
# 3号 3 是
# 4号 4 否
# 年龄 性别 牌照 通过
# 5号 50 男 5 是
# 6号 60 女 6 是
#合并列对象
df=pd.concat([df1,df2],axis=1)
print(df)
# 年龄 性别 牌照 通过
# 1号 10 女 1 是
# 2号 20 男 2 否
# 3号 30 男 3 是
# 4号 40 女 4 否
#合并行对象
df=pd.concat([df,df3])
print(df)
# 年龄 性别 牌照 通过
# 1号 10 女 1 是
# 2号 20 男 2 否
# 3号 30 男 3 是
# 4号 40 女 4 否
# 5号 50 男 5 是
# 6号 60 女 6 是
总结
通过本文,我们学习了如何使用Pandas中的concat函数来合并具有不同列结构和索引的数据框。我们先进行了列合并,然后进行了行合并,最终得到了一个完整的数据框。这种操作对于整合多个数据源、进行数据分析和生成报告等工作都非常有用。掌握数据合并的技巧能够让数据处理过程更加高效和灵活。希望本文对您有所帮助,使您在实际工作中能够更好地应用Pandas进行数据处理和分析