6合并concat
import pandas as pd
import numpy as np
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)
print(df2)
print(df3)
6.1指定方向
res=pd.concat([df1,df2,df3],axis=0) #axis=0,竖着合并
print(res)
res=pd.concat([df1,df2,df3],axis=0,ignore_index=True)
#忽略索引 重新分配不同的
print(res)
6.2 join参数
join参数 默认是outer
outer:相当于并集 会变多 只是没有的会用na填充
inner:相当于交集 会缩减 只保留两者都有的
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, join='outer')
print(res)
res = pd.concat([df1, df2], axis=1, join='inner')
print(res)
6.3 join_axes 参数
join_axes,指定按照哪个dataframe的index或columns进行合并
res = pd.concat([df1, df2], axis=1, join_axes=[df1.index])
print(res)
res = pd.concat([df1, df2], axis=1, join_axes=[df2.index])
print(res)
6.4 append
把df2加到df1下面
sort=False 一定要加上 不然列的顺序会改变
df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['b','c','d', 'e'], index=[2,3,4])
res = df1.append(df2, ignore_index=True,sort=False)
print(res)
也可以同时append多个dataframe
当dataframe一项一项添加元素时常用append 就像列表加一行