Python之pandas学习【6】:合并两个pandas(concat)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_36499794/article/details/102737345

注意看代码注释和运行结果,其实自己跑一遍什么都明白了。

一. 代码

import numpy as np
import pandas as pd

df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*2,columns=['a','b','c','d'])
print(df1,'\n')
print(df2,'\n')
print(df3,'\n')


# 上下合并DataFrame,concat方式
res = pd.concat([df1,df2,df3],axis=0,ignore_index=True) # 纵向合并,1是横向合并,最后一个参数就是放弃之前的索引,重新建立索引
print(res,'\n')


# join,【‘inner','outer']
df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'],index=[1,2,3])
df2 = pd.DataFrame(np.ones((3,4))*1,columns=['b','c','d','e'],index=[2,3,4])
print(df1,'\n')
print(df2,'\n')
res = pd.concat([df1,df2],axis=0)
print(res,'\n')
res1 = pd.concat([df1,df2],join='inner',ignore_index=True) # 默认是outer。inner就是只考虑两者都有的部分
print(res1,'\n')


# join_axes
df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'],index=[1,2,3])
df2 = pd.DataFrame(np.ones((3,4))*1,columns=['b','c','d','e'],index=[2,3,4])
res = pd.concat([df1,df2],axis=1) # 默认考虑两个矩阵的行和列
print(res,'\n')
res1 = pd.concat([df1,df2],axis=1,join_axes=[df1.index]) # 给定之后,就只考虑哪一个
print(res1,'\n')


# append,也可横向竖向
df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'],index=[2,3,4])
res = df1.append(df2,ignore_index=True)
print(res,'\n')
res = df1.append([df2,df3])
print(res,'\n')
s1 = pd.Series([1,2,3,4],index=['a','b','c','d']) # 只添加一个横条
res = df1.append(s1,ignore_index=True)
print(res,'\n')

二. 运行结果

猜你喜欢

转载自blog.csdn.net/qq_36499794/article/details/102737345