随笔 - 12  文章 - 0  评论 - 0  阅读 - 5450

Pandas碎碎念1 - Dataframe 合并之 join,concat,merge,append

最近做的几个项目都要经常使用pandas操作excel,中间也遇到了不少坑,简单记录一下吧。套用骁哥的一句话,让自己变得更强!

Pandas中有几种常见的合并dataframe的方法,join,concat,merge,append。下面来尝试一下:

首先来做一些测试数据

复制代码
    data1 = {'Src': [1, 2, 3, 4],
             'Mid': [1, 2, 3, 4]
             }
    data2 = {'Dst': [4, 5, 6],
             'Mid': [1, 2, 3]
             }
    data3 = {'Dst': [4, 5, 6]
             }
    data4 = {'Dst1': [7, 8, 9]
             }
    df1 = pd.DataFrame(data1)
    df2 = pd.DataFrame(data2)
    df3 = pd.DataFrame(data3)
    df4 = pd.DataFrame(data4)
复制代码

1,join函数

join函数很简单,就是两个dataframe按index合并 (不可以有相同的列名,否则会报错)。使用方法:df1.join(df2)。默认是left关联

复制代码
df1.join(df4,how='left')
   Src  Mid  Dst1
0    1    1   7.0
1    2    2   8.0
2    3    3   9.0
3    4    4   NaN
df1.join(df4,how='right')
   Src  Mid  Dst1
0    1    1     7
1    2    2     8
2    3    3     9
复制代码

2,concat函数

concat函数实际上是两个dataframe拼接在一起,跟index,列名都无关。使用方法pd.concat([df1,df2])。从下面的例子可以看到,即使df1,df2有相同的列mid,但是也不会通过列名合并,只是简单的将它们拼接到一起

复制代码
pd.concat([df1,df2])
   Src  Mid  Dst
0  1.0    1  NaN
1  2.0    2  NaN
2  3.0    3  NaN
3  4.0    4  NaN
0  NaN    1  4.0
1  NaN    2  5.0
2  NaN    3  6.0
复制代码
复制代码
pd.concat([df1,df3])
   Src  Mid  Dst
0  1.0  1.0  NaN
1  2.0  2.0  NaN
2  3.0  3.0  NaN
3  4.0  4.0  NaN
0  NaN  NaN  4.0
1  NaN  NaN  5.0
2  NaN  NaN  6.0
复制代码

 

3,merge函数

merge函数要求两个dataframe有相同的列,merge函数有多种写法(如下)。如果有多个相同的列时,也可以通过关键字on来定义使用哪列作为连接字段:df1.merge(df2,how='left',on='Mid')

复制代码
pd.merge(df1,df2)
   Src  Mid  Dst
0    1    1    4
1    2    2    5
2    3    3    6
df1.merge(df2)
   Src  Mid  Dst
0    1    1    4
1    2    2    5
2    3    3    6
df1.merge(df2,how='right')
   Src  Mid  Dst
0    1    1    4
1    2    2    5
2    3    3    6
df1.merge(df2,how='left')
   Src  Mid  Dst
0    1    1  4.0
1    2    2  5.0
2    3    3  6.0
3    4    4  NaN
复制代码

 

4,append函数

append函数和join函数很像,join函数是横向使用index关联,append是使用column列名纵向关联。

复制代码
df1.append(df2)
   Src  Mid  Dst
0  1.0    1  NaN
1  2.0    2  NaN
2  3.0    3  NaN
3  4.0    4  NaN
0  NaN    1  4.0
1  NaN    2  5.0
2  NaN    3  6.0
df1.append(df3)
   Src  Mid  Dst
0  1.0  1.0  NaN
1  2.0  2.0  NaN
2  3.0  3.0  NaN
3  4.0  4.0  NaN
0  NaN  NaN  4.0
1  NaN  NaN  5.0
2  NaN  NaN  6.0
复制代码

 

相信这几种dataframe合并方式,总有一款适合你

 

posted on   Kyk  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示