pandas方法(join篇)

1,join方法

dataframe内置了join方法是一种快速合并的方法。它默认以index作为对齐的列。

1.1 how参数

join中的how参数和merge中的how参数一样,用来指定表合并保留数据的规则。

1 import pandas as pd
 2 df1 = pd.DataFrame([[1,2,3],[1,10,20],[5,6,7],[3,9,0],[8,0,3]],columns=['x1','x2','x3'])
 3 df2 = pd.DataFrame([[1,2],[1,10],[1,3],[4,6],[3,9]],columns=['x1','x4'])
 4 print (df1)
 5 print (df2)
 6 df3 = pd.merge(df1,df2,how = 'left',on='x1')
 7 print (df3)
 8 df4 = pd.merge(df1,df2,how = 'right',on='x1')
 9 print (df4)
10 df5 = pd.merge(df1,df2,how = 'inner',on='x1')
11 print (df5)
12 df6 = pd.merge(df1,df2,how = 'outer',on='x1')
13 print (df6)

结果如下:

1.2  on参数

在实际应用中如果右表的索引是左表的某一列的值,这时可以将右表的索引和

左表的列对齐合并这样的灵活方式进行合并。

left = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'],'key': ['K0', 'K1', 'K0', 'K1']})
right = pd.DataFrame({'C': ['C0', 'C1'],'D': ['D0', 'D1']},index=['K0', 'K1'])

result=left.join(right,on='key')

2, suffix 后缀参数

如果和表合并的过程中遇到有一列两个表都同名,合并的时候又都想保留下俩

,就可以用suffixes给每个表的重复列名增加后缀

result=pd.merge(left,right,on='k',suffixes=['_l','_r'])

注:lsuffix和rsuffix分别指定左表的后缀和右表的后缀。

3,组合多个dataframe

一次组合多个dataframe的时候可以传入元素为dataframe的列表或者tuple。

right2 =pd.dataframe({'v':[7,8,9]},index=['k1','k1','k2'])

result=left.join([right,roght2])

4,更新表的nan值

combine_first

如果一个表nan值,在另一个表相同位置(相同索引和相同列)可以找到,

则可以通过combline_first来更新数据

update

如果要用一张表中的数据来更新另一张表的数据则可以用update来实现

combine_first和update的区别

使用combine_first只会更新左表的nan值。而update则会更新左表的所有能在

右表中找到的值(两表位置相对应)

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值