谈到pandas数据的行更新、表合并平,一般的方法有concat、join、merge。我来说下他们的使用场景和用途。
主要来自pandas官方中关于数据合并和重述的使用方法的总结。
代码由pandas官网提供,小编运行了一遍。
concat
import pandas as pd
pd.concat(object,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False)
参数说明
object:series,dataframe或则是panel构成的序列list
axis:需要合并连接的轴,0是行,1是列
join:连接的方式inner,或者outer
1,相同字段的表首尾相连
#frames=[df1,df2,df3]
result=pd.concat(frames)
#效果如下
#如果在连接的时候加上一个key来识别数据来源于那张表,可以增加可以参数
result=pd.concat(frames,keys=['x','y','z'])
如下效果
2,横向拼接(行对齐)
2.1axis
当axis=1的时候,concat就是行对齐,然后将不同列名称的两张表合并
#result=pd.concat([df1,df4],axis=1)
3 join
加上join参数的属性,如果是 inner 得到的是两表的交集,如果是outer,得到的是两表的并集。
result=pd.concat([df1,df4],axis=1,join='inner')
4,join_axes
如果是join_axes的参数传入,可以指定根据那个轴来对齐数据
例如根据df1表对齐数据,就会保留指定的df1表的轴,然后将df4的表与之拼接
result=pd.concat([df1,df4],axis=1,join_axes=[df1.index])
5,appeng
#append是series和dataframe的方法,使用他就是默认沿着行(axis=0,列对齐)
result=df1.append(df2)
6,可以无视index的concat
当两个表的index没有实际意义时,使用ignore_index参数,为true时,合并的两个表
就根据列字段对齐,然后合并,最后真理新的index
7,合并的同时增加区分数据组的键
前面提到的key参数可以用来给合并的表key来区分不同的表数据来源
result = pd.concat(frames,keys=['x','y','z']
8,传入字典来增加分组键
jia={'x':df1,'y':df2,'z':df3}
result=pd.concat(jia)
9,在dataframe中加入新的行
append方法可以将series和字典的数据作为dataframe的新一行插入
pd.series(['x0','x1','x2','x3'],index=['A','B','C','D'])
result=df1.append(s2,ignore_index=True)
10,表格字段不同的表合并
dicts = [{'A': 1, 'B': 2, 'C': 3, 'X': 4},{'A': 5, 'B': 6, 'C': 7, 'Y': 8}]
result = df1.append(dicts, ignore_index=True)
以上是concat篇的内容,有建议请指正,微信:17576052970