栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas常用功能

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas常用功能

python有多种数据合并的方法,在不同的场合我们可以使用不用的方法

一、Merge

merge可能是我们最熟悉,也最常用的一个方法,因为它的用法与mysql的连接(join)非常类似。

函数介绍

pd.merge( left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(‘_x’, ‘_y’), copy=True, indicator=False, validate=None,)

参数详解

【常用参数】

  • left: DataFrame | Series,合并的左表
  • right: DataFrame | Series,合并的右表
  • how: str = “inner” 合并方式,默认内连接,常用的可以改成left,左连接
  • on: IndexLabel | None = None, 关联键(如果左右表名称不一样,用下面2个参数)
  • left_on: IndexLabel | None = None, 左表关联键
  • right_on: IndexLabel | None = None,右表关联键
  • suffixes: Suffixes = (“_x”, “_y”), 左右表相同名称的变量,会自动添加后缀名

【非常用参数】

  • left_index: bool = False,
  • right_index: bool = False,
  • sort: bool = False,
  • copy: bool = True,
  • indicator: bool = False,
  • validate: str | None = None,
代码示例

创建示例数据

import pandas as pd
import numpy as np

left = pd.DataFrame({'key': [1, 2, 3], 'val': ['a', 'b', 'c']})
right = pd.DataFrame({'key': [2, 3], 'val': ['B', 'C']})
In [3]:print(left)
Out[3]: 
   key val
0    1   a
1    2   b
2    3   c
In [5]:print(right )
Out[5]: 
   key val
0    2   B
1    3   C

默认的inner join,只合并到2行

In [11]: pd.merge(left, right, on='key')
Out[11]: 
   key val_x val_y
0    2     b     B
1    3     c     C

改成left join,合并到3行,没有合并到的行为空

In [12]: pd.merge(left, right, left_on='key', right_on='key', how='left')
Out[12]: 
   key val_x val_y
0    1     a   NaN
1    2     b     B
2    3     c     C
二、concat

contact实现的是横向和纵向的拼接,通过axis参数配置,1是横向,0是纵向

横向拼接
In [14]: pd.concat([left, right], axis=1)
Out[14]: 
   key val  key  val
0    1   a  2.0    B
1    2   b  3.0    C
2    3   c  NaN  NaN
纵向拼接
pd.concat([left, right], axis=0)
Out[15]: 
   key val
0    1   a
1    2   b
2    3   c
0    2   B
1    3   C
三、join

join用的不多,跟merge差不多,只不过是左表.join右表的形式。参数没merge好理解,不太建议用。

In [24]:left.join(right, lsuffix='_left', rsuffix='_right')
Out[24]: 
   key_left val_left  key_right val_right
0         1        a        2.0         B
1         2        b        3.0         C
2         3        c        NaN       NaN

join我很少用,大家如果有需要,请查看官方文档介绍

四、append

append的作用是为 DataFrame 追加行。

默认的配置,合并后的索引是保留原来的,即会出现重复

In [29]: left.append(right)
Out[29]: 
   key val
0    1   a
1    2   b
2    3   c
0    2   B
1    3   C

增加一个ignore_index=True的参数配置,可以实现索引新增

left.append(right, ignore_index=True)
Out[28]: 
   key val
0    1   a
1    2   b
2    3   c
3    2   B
4    3   C

罗列了常用的方法,还有很多参数没有写得很全,未完待续~~~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998202.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号