利用Python数据分析:数据的规整化(一)

import pandas as pd
from pandas import Series,DataFrame
import numpy as np
df1 = DataFrame({'key':['b','b','a','c','a','a','b'],
                 'data1':range(7)})
df2 = DataFrame({'key':['a','b','d'],
                 'data2':range(3)})
df1
df2
pd.merge(df1,df2) #  保留了重叠的部分
"""
 data1 key  data2
0      0   b      1
1      1   b      1
2      6   b      1
3      2   a      0
4      4   a      0
5      5   a      0
"""
pd.merge(df1,df2,on='key') # 指定按照哪个列进行链接,如果没有指定,就会自动根据重叠的列名当做键
df3 = DataFrame({'lkey':['b','b','a','c','a','a','b'],
                 'data1':range(7)})
df4 = DataFrame({'rkey':['a','b','d'],
                 'data2':range(3)})
pd.merge(df3,df4,left_on='lkey',right_on='rkey')# 默认情况下merge做的事内连接,取交集
pd.merge(df1,df2,how='outer') # 外链接取的是并集
df1 = DataFrame({'key':['b','b','a','c','a','b'],
                 'data1':range(6)})
df2 = DataFrame({'key':['a','b','a','b','d'],
                 'data2':range(5)})
df1
df2
pd.merge(df1,df2,on='key',how='left') # 按照左边进行多对多的链接,
pd.merge(df1,df2,how='inner') # 多对多链接产生的是笛卡尔积
left = DataFrame({'key1':['foo','foo','bar'],
                  'key2':['one','two','one'],
                 'lval':[1,2,3]})
right = DataFrame({'key1':['foo','foo','bar','bar'],
                   'key2':['one','one','one','two'],
                   'rval':[4,5,6,7]})
pd.merge(left,right,on =['key1','key2'],how='outer') # 多个键进行合并,传入一组列名组成的列表就行
pd.merge(left,right,on='key1') # 重名的列
pd.merge(left,right,on='key1',suffixes=('_left','_right')) # 指定附加到左右两个dataframe对象重叠列名上的字符

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值