Datawhale Task06 连接 打卡

值连接

import pandas as pd
#两张表根据某一列的值来连接
df1 = pd.DataFrame({'Name':['zhangsan','lisi']
                   ,'Age':[20,30]})
df2 = pd.DataFrame({'Name':['lisi','wangwu']
                   ,'Gender':['F','M']})
df1.merge(df2,on = 'Name',how = 'left')
NameAgeGender
0zhangsan20NaN
1lisi30F
df1 = pd.DataFrame({'df1_name':['zhangsan','lisi']
                   ,'Age':[20,30]})
df2 = pd.DataFrame({'df2_name':['lisi','wangwu']
                   ,'Gender':['F','M']})

df1.merge(df2,left_on = 'df1_name',right_on = 'df2_name',how = 'left')
df1_nameAgedf2_nameGender
0zhangsan20NaNNaN
1lisi30lisiF
df_1 = pd.DataFrame({'Name':['zhangsan'],'Grade':[70]})
df_1

NameGrade
0zhangsan70
df_2 = pd.DataFrame({'Name':['zhangsan'],'Grade':[80]})
df_2
NameGrade
0zhangsan80
df1.merge(df2, on='Name',how='left',suffixes=['_Chinese','_Math'])
---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-5-8731a9946c66> in <module>
----> 1 df1.merge(df2, on='Name',how='left',suffixes=['_Chinese','_Math'])


D:\anaconda\lib\site-packages\pandas\core\frame.py in merge(self, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)
   7961             copy=copy,
   7962             indicator=indicator,
-> 7963             validate=validate,
   7964         )
   7965 


D:\anaconda\lib\site-packages\pandas\core\reshape\merge.py in merge(left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)
     85         copy=copy,
     86         indicator=indicator,
---> 87         validate=validate,
     88     )
     89     return op.get_result()


D:\anaconda\lib\site-packages\pandas\core\reshape\merge.py in __init__(self, left, right, how, on, left_on, right_on, axis, left_index, right_index, sort, suffixes, copy, indicator, validate)
    650             self.right_join_keys,
    651             self.join_names,
--> 652         ) = self._get_merge_keys()
    653 
    654         # validate the merge keys dtypes. We may need to coerce


D:\anaconda\lib\site-packages\pandas\core\reshape\merge.py in _get_merge_keys(self)
   1003                     if not is_rkey(rk):
   1004                         if rk is not None:
-> 1005                             right_keys.append(right._get_label_or_level_values(rk))
   1006                         else:
   1007                             # work-around for merge_asof(right_index=True)


D:\anaconda\lib\site-packages\pandas\core\generic.py in _get_label_or_level_values(self, key, axis)
   1561             values = self.axes[axis].get_level_values(key)._values
   1562         else:
-> 1563             raise KeyError(key)
   1564 
   1565         # Check for duplicates


KeyError: 'Name'

方向连接

df1 = pd.DataFrame({'Name':['zhangsan','lisi'],
                   'Age':[20,30]})
df2 = pd.DataFrame({'Name':['wangwu'],'Age':[40]})
pd.concat([df1,df2])
NameAge
0zhangsan20
1lisi30
0wangwu40
df2 = pd.DataFrame({'Grade':[80,90]})
df3 = pd.DataFrame({'Gender':['M','F']})
pd.concat([df1,df2,df3],1)
NameAgeGradeGender
0zhangsan2080M
1lisi3090F

类连接操作

df1 = pd.DataFrame({'Name':['zhangsan','lisi','wangwu'],
                   'Age':[20,21,21],
                   'Class':['one','two','three']})
df2 = pd.DataFrame({'Name':['zhangsan','lisi','wangwu'],
                   'Age':[20,21,21],
                   'Class':['one','two','three']})

df1.compare(df2)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值