前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >05.记录合并&字段合并&字段匹配1.记录合并2.字段合并3.字段匹配3.1 默认只保留连接上的部分3.2 使用左连接3.3 使用右连接3.4 保留左右表所有数据行

05.记录合并&字段合并&字段匹配1.记录合并2.字段合并3.字段匹配3.1 默认只保留连接上的部分3.2 使用左连接3.3 使用右连接3.4 保留左右表所有数据行

作者头像
用户1250179
发布2018-08-02 16:34:54
3.5K0
发布2018-08-02 16:34:54
举报
文章被收录于专栏:数说戏聊

1.记录合并

将两个结构相同的数据框合并成一个数据框。 函数concat([dataFrame1, dataFrame2, ...])

屏幕快照 2018-07-02 19.55.54.png

代码语言:javascript
复制
import pandas
from pandas import read_csv
data1 = read_csv(
    '/users/bakufu/desktop/4.10/data1.csv',
    sep = '|'        
)

data2 = read_csv(
    '/users/bakufu/desktop/4.10/data2.csv',
    sep = '|'        
)

data3 = read_csv(
    '/users/bakufu/desktop/4.10/data3.csv',
    sep = '|'        
)

data = pandas.concat([data1, data2, data3])

屏幕快照 2018-07-02 21.47.59.png

2.字段合并

将同一个数据框中的不同列合并成新的列。 方法x = x1 + x2 + x3 + ...合并后的数据以序列的形式返回。 要求:所有序列长度一致,数据都是字符型。如果是数值型或逻辑型,需要进行转换。

屏幕快照 2018-07-02 20.19.44.png

代码语言:javascript
复制
from pandas import read_csv
df = read_csv(
    '/users/bakufu/desktop/4.11/data.csv',
    sep = ' ',
    names = ['band', 'area', 'num']      
)

#将数值型数据转换成字符型数据
df = df.astype(str)

#合并成新列
tel = df['band'] + df['area'] + df['num']

#将tel添加到df数据框的tel列
df['tel'] = tel

屏幕快照 2018-07-02 20.37.46.png

3.字段匹配

根据各表共有的关键字段,把各表所需的记录进行一一对应。 函数merge(x, y, left_on, right_on) 需要匹配的数据列,应使用用一种数据类型。 返回值:DataFrame

参数

注释

x

第一个数据框

y

第二个数据框

left_on

第一个数据框用于匹配的列

right_on

第二个数据框用于匹配的列

代码语言:javascript
复制
import pandas
items = pandas.read_csv(
    '/users/bakufu/desktop/4.12/data1.csv',
    sep = '|',
    names = ['id', 'comments', 'title']
)

prices = pandas.read_csv(
    '/users/bakufu/desktop/4.12/data2.csv',
    sep = '|',
    names = ['id', 'oldPrice', 'nowPrice']    
)

屏幕快照 2018-07-02 22.04.03.png

屏幕快照 2018-07-02 22.04.25.png

3.1 默认只保留连接上的部分

第10行已经消失

代码语言:javascript
复制
itemPrices = pandas.merge(
    items,
    prices,
    left_on = 'id',
    right_on = 'id'
)

屏幕快照 2018-07-02 22.02.37.png

3.2 使用左连接

即使与右边数据框匹配不上,也要保留左边内容,右边未匹配数据用空值代替

代码语言:javascript
复制
itemPrices = pandas.merge(
    items,
    prices,
    left_on = 'id',
    right_on = 'id',
    how = 'left'
)

屏幕快照 2018-07-02 21.38.15.png

3.3 使用右连接

即使与左边数据框匹配不上,也要保留右边内容,左边未匹配数据用空值代替

代码语言:javascript
复制
itemPrices = pandas.merge(
    items,
    prices,
    left_on = 'id',
    right_on = 'id',
    how = 'right'
)

屏幕快照 2018-07-02 21.38.49.png

3.4 保留左右表所有数据行

即使连接不上,也保留所有未连接的部分,使用空值填充

代码语言:javascript
复制
itemPrices = pandas.merge(
    items,
    prices,
    left_on = 'id',
    right_on = 'id',
    how = 'outer'
)

屏幕快照 2018-07-02 21.41.59.png

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.07.03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.记录合并
  • 2.字段合并
  • 3.字段匹配
  • 3.1 默认只保留连接上的部分
  • 3.2 使用左连接
  • 3.3 使用右连接
  • 3.4 保留左右表所有数据行
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档