Pandas DataFrame合并concat、merge,分组GroupBy

合并

1、concat合并

先创建两个dataFrame

import pandas as pd
import numpy as np
d1 = pd.DataFrame(np.random.randint(0, 50, (3,4)))
d2 = pd.DataFrame(np.random.randint(0, 50, (4,5)))

在这里插入图片描述
默认按列合并,对应的列合并到一起,缺少的列用nan值填充
在这里插入图片描述
指定axis可以按行合并,缺少的行用nan值填充
在这里插入图片描述
指定连接方式
join : inner,只保留相同索引的行或列
        outer ,保留所有的行或列

在这里插入图片描述
sort=False是取消自动排序
在这里插入图片描述

2、merge合并

        left ,按左边DataFrame对象的行或列索引合并
        right ,按左边DataFrame对象的行或列索引合并

d1 = pd.DataFrame({
    'key': list('abcd'),
    'data1':[1,6,2,4]
})
d2 = pd.DataFrame({
    'key':list('abcd'),
    'data2':[5,3,9,2]
})

在这里插入图片描述
merge函数的参数

pd.merge(
    left,
    right,
    how='inner',   连接方式
    on=None,       指定连接列字段,类似MySQL的外键
    left_on=None,    当没有相同的列的时候,同left_on,right_on指定不同的列连接
    right_on=None,
    left_index=False,        通过行索引连接的时候使用left_index和right_index指定
    right_index=False,         
    sort=False,               默认按行索引排序关闭
    suffixes=('_x', '_y'),          当有多个相同列的时候可以使用suffixes指定后缀以区分
    copy=True,
    indicator=False,
    validate=None,
)

默认连接
在这里插入图片描述
外连接
在这里插入图片描述
左右连接
在这里插入图片描述
在这里插入图片描述
按d1的data1和d2的行索引连接
在这里插入图片描述
自定义相同列的后缀
在这里插入图片描述

分组

使用groupby分组
创建一个dataframe

d1 = pd.DataFrame({
    'name': ['dog', 'dog', 'cat','cat'],
    'weight': [12, 15, 3, 4],
    'age':[12,6,16,2],
    'type':['哈士奇', '柴犬', '蓝猫', '蓝猫']
})

在这里插入图片描述
按name分组
在这里插入图片描述
groupby返回的是一个DataFrameGroupBy对象,使用size()来查看每个组的大小
在这里插入图片描述
按name和type分组
在这里插入图片描述
对分组使用聚合函数
1、求和
在这里插入图片描述
2、求平均值
在这里插入图片描述
3、求最大值
在这里插入图片描述
还有 方差 var、标准差std、中位数median等
也可以一次性查看所有的描述统计信息
在这里插入图片描述
对不同的数据使用不同的函数
在这里插入图片描述
展示时起个别名
在这里插入图片描述
自定义聚合函数
在这里插入图片描述

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值