数据分析---DataFrame的级联and合并操作

级联操作

对原始数据(表格)进行横向或者纵向的拼接,和np.concatenate函数类似。需要保证拼接的行列索引的一致;如果不一致,会补空(外级联)或者 只级联能够级联的部分(内级联)

import numpy as np
import pandas as pd
from pandas import DataFrame

pd.concat((df1,df2),axis=0)  #按列进行级联

  • 匹配级联和不匹配级联(内、外)

 横向级联——两个表格的行索引相同,匹配级联

 纵向级联——外级联:列索引不同,不匹配级联,此时会产生空值

此时增加一个参数——内级联,只联接能够联接的列

 如果要保证数据的完整性,必须使用out外级联。

df1.append(df2)   #只能进行外级联

列和列的级联

 合并操作        

        对数据的整合,一次只能合并两张表的数据

  •  一对一合并

         两张表的列索引不同;可以进行级联。对其合并——可以将数据合并 

on='employee' : 基于employee这一列将两张表合并,如果没有这个参数,则基于相同的列进行合并。

  • 一对多的合并

 基于相同的列employee进行合并,得到了一个三行四列的表格:Jack的Engineering可以分别和Guido、Steve合并。

  •  多对多的合并

        (1) 基于group进行合并, 理论上得到一个6行3列的表格(有空缺值:outer)。到那时merge函数默认为 .merge(df1,df2,how='inner'):

         (2)只保留左表或者保留右表进行合并:

         (3)如果有两列的列索引相同,不指明基于哪一列合并时,则基于两者同时合并:

 基于employee和group同时合并得到:

指定基于group列进行合并:

        (4)两张表中没有相同的列索引时(有相同的数据)

没有共有的列如何合并? 但是只要有共有的数据即可合并

         (5)内合并和外合并

out取并集(外合并,有空缺值),inner取交集(外合并,没有空缺值),merge默认inner。

如何判断是做级联还是合并:

  • 看题目要求;
  • 没有要求时,如果这张表的大部分索引都一样,那么肯定是做级联;
  • 如果只有局部索引一样,甚至没有索引一样,那么只能做合并。  

(下一节:人口分析案例,级联和合并的应用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值