DataFrame数据拼接合并的几种方式 |
您所在的位置:网站首页 › dataframe两列合并 › DataFrame数据拼接合并的几种方式 |
pd.merge()
merge 是融合的意思 实例: a=pd.DataFrame({'a':[1,2,3],'b':[2,3,4]}) b=pd.DataFrame({'a':[11,22,33],'c':[22,33,44]}) c=pd.merge(a,b) c Empty DataFrame Columns: [a, b, c] Index: []通过验证发现,a和b的同名列表被合并,但是都是空说明默认连接形式是内连接,及二者默认把相同列名作为查找的条件,若是查找不到相同的值返回空。 加入连接条件 c=pd.merge(a,b,how='outer',on='a') c a b c 0 1 2.0 NaN 1 2 3.0 NaN 2 3 4.0 NaN 3 11 NaN 22.0 4 22 NaN 33.0 5 33 NaN 44.0由此可见pd.merge与数据库的连接形式是一致的。 pd.concatconcat是连接的意思 仍然使用上面的数据 pd.concat(a,b) a b c 0 1 2.0 NaN 1 2 3.0 NaN 2 3 4.0 NaN 0 11 NaN 22.0 1 22 NaN 33.0 2 33 NaN 44.0和mrege不同的是cancat是真正的"连接‘’,它把a,b两个表完全拼接在一起,默认拼接形式是并集,我们可以通过修改参数来修改拼接模式,以及拼接方向,也可以重述索引。 pd.concat([a,b],axis=1) a b a c 0 1 2 11 22 1 2 3 22 33 2 3 4 33 44 pd.concat([a,b],join='inner') a 0 1 1 2 2 3 0 11 1 22 2 33 d=pd.concat([a,b]) d.index=list(range(0,6)) d a b c 0 1 2.0 NaN 1 2 3.0 NaN 2 3 4.0 NaN 3 11 NaN 22.0 4 22 NaN 33.0 5 33 NaN 44.0 赋值通过赋值语句可以使得单列数据的拼接。 e=pd.Series(list('abc')) a['c']=e a b c 0 1 2 a 1 2 3 b 2 3 4 c e=pd.DataFrame(list('abc')) a['c']=e a b c 0 1 2 a 1 2 3 b 2 3 4 c DataFrame.joinjoin只支持横向连接,可以认为是多列赋值,要求join的列表和原列表不能有重名 仍然使用原数据。 a.join(b)报错,列重叠 a.join(e) a b c 0 0 1 2 a a 1 2 3 b b 2 3 4 c c |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |