DataFrame数据拼接合并的几种方式

您所在的位置:网站首页 dataframe两列合并 DataFrame数据拼接合并的几种方式

DataFrame数据拼接合并的几种方式

2023-06-09 23:56| 来源: 网络整理| 查看: 265

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.concat

concat是连接的意思

仍然使用上面的数据

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.join

join只支持横向连接,可以认为是多列赋值,要求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