注意看代码注释和运行结果,其实自己跑一遍什么都明白了。
一. 代码
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')
二. 运行结果