【pandas基础】--数据拆分与合并

这篇具有很好参考价值的文章主要介绍了【pandas基础】--数据拆分与合并。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据集拆分是将一个大型的数据集拆分为多个较小的数据集,可以让数据更加清晰易懂,也方便对单个数据集进行分析和处理。
同时,分开的数据集也可以分别应用不同的数据分析方法进行处理,更加高效和专业。

数据集合并则是将多个数据集合并成一个大的数据集,可以提供更全面的信息,也可以进行更综合的数据分析。
同时,数据集合并也可以减少数据处理的复杂度和时效性,提升数据分析的准确性和结果的可靠性。

1. 数据集拆分

拆分数据集比较简单,之前介绍过数据检索的各种方式,其实检索出的结果就是拆分出来的数据。

1.1 拆分行

拆分单行和多行。

import pandas as pd

df = pd.DataFrame(
    {
        "name": ["小红", "小明", "小华"],
        "age": [13, 15, 14],
        "gender": ["男", "女", "男"],
    }
)
first_row = df.loc[0:0, :]
left_rows = df.loc[1:, :]

image.png

1.2 拆分列

拆分单列或者多列。

import pandas as pd

df = pd.DataFrame(
    {
        "name": ["小红", "小明", "小华"],
        "age": [13, 15, 14],
        "gender": ["男", "女", "男"],
    }
)

first_col = df[["name"]]
left_cols = df[["age", "gender"]]

image.png

1.3 按条件拆分

下面的示例按照列的值来拆分数据集。

import pandas as pd

df = pd.DataFrame(
    {
        "name": ["小红", "小明", "小华"],
        "age": [13, 15, 14],
        "gender": ["男", "女", "男"],
    }
)

males = df[df["gender"] == "男"]
greater13 = df[df["age"] > 13]

image.png

如果有多个条件,可以通过逻辑与(&)逻辑或(|)符号来连接,具体可以参照之前介绍数据检索的文章。

2. 数据集合并

数据集的合并也是比较常用的,因为我们收集来的数据可能来自不同的地方。

2.1 merge 方法

merge方法合并DataFrame时,有两个重要的参数:

  1. how:设置合并的方式,有innerouterleftright四种方式。
  2. on:依据那个列来合并

下面是四种不同合并方式的示例。
inner合并:name值相同的数据才保留下来。

import pandas as pd

df1 = pd.DataFrame(
    {
        "name": ["小红", "小明"],
        "age": [13, 15],
        "gender": ["男", "女"],
    }
)

df2 = pd.DataFrame(
    {
        "name": ["小红", "小华"],
        "score": [99, 100],
    }
)

df = pd.merge(df1, df2, how="inner", on="name")
df

image.png

outer合并:两个DataFramename都保留下来,合并后缺失值的填充NaN

df = pd.merge(df1, df2, how="outer", on="name")
df

image.png

left合并:df1name全部保留下来,缺失的值填充NaN

df = pd.merge(df1, df2, how="left", on="name")
df

image.png

right合并:df2name全部保留下来,缺失的值填充NaN

df = pd.merge(df1, df2, how="right", on="name")
df

image.png

2.2 concat 方法

两个DataFrame结构相同时,一般是按行来合并(axis=0)。

df1 = pd.DataFrame(
    {
        "name": ["小红", "小明"],
        "age": [13, 15],
        "gender": ["男", "女"],
    }
)

df2 = pd.DataFrame(
    {
        "name": ["小红", "小华"],
        "age": [13, 15],
        "gender": ["男", "女"],
    }
)

df = pd.concat([df1, df3], axis=0)
df

image.png

如果两个DataFrame结构不一样时,用列合并(axis=1)。

df1 = pd.DataFrame(
    {
        "name": ["小红", "小明"],
        "age": [13, 15],
        "gender": ["男", "女"],
    }
)

df2 = pd.DataFrame(
    {
        "score": [100, 90],
        "city": ["nanjing", "beijing"],
    }
)

df = pd.concat([df1, df3], axis=1)
df

image.png

2.3 join 方法

join方法和merge方法类似,主要区别在于joinDataFrame的方法,而mergepandas的方法。
下面请直接看与merge方法相似的四种示例。

inner合并:name值相同的数据才保留下来。

df1 = pd.DataFrame(
    {
        "name": ["小红", "小明"],
        "age": [13, 15],
        "gender": ["男", "女"],
    }
)

df2 = pd.DataFrame(
    {
        "name": ["小红", "小华"],
        "score": [99, 100],
    }
)

df1 = df1.set_index("name")
df2 = df2.set_index("name")
df = df1.join(df2, how="inner")
df.reset_index()

image.png
注意,这里显示了joinmerge的一个区别,join默认是依据索引(index)来合并DataFrame的,
所以,先把name设置为索引之后才合并的,合并之后又通过reset_index重置了索引,得到了和merge同样的结果。

outer合并:两个DataFramename都保留下来,合并后缺失值的填充NaN

df1 = df1.set_index("name")
df2 = df2.set_index("name")
df = df1.join(df2, how="outer")
df.reset_index()

image.png
注意,最后的数据虽然和merge一样,但是顺序有些区别。

left合并:df1name全部保留下来,缺失的值填充NaN

df1 = df1.set_index("name")
df2 = df2.set_index("name")
df = df1.join(df2, how="left")
df.reset_index()

image.png
left的结果和merge一样。

right合并:df2name全部保留下来,缺失的值填充NaN

df1 = df1.set_index("name")
df2 = df2.set_index("name")
df = df1.join(df2, how="right")
df.reset_index()

image.png
right的结果和merge一样。

3. 总结回顾

总的来说,pandas数据集拆分和合并的意义在于高效利用数据,提高数据分析的质量和效率,进一步实现数据驱动的业务增长。

本篇主要介绍了数据集拆分和合并最常用的几种基本方法,根据具体的业务组合这些基本方法,就能够进行更复杂的数据集拆分和合并。文章来源地址https://www.toymoban.com/news/detail-449109.html

到了这里,关于【pandas基础】--数据拆分与合并的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pandas中DataFrame数据合并、连接

    为解决数据冗余等问题,大量的数据会分开存放在不同的文件(表格)里。在数据处理时,经常会有不同表格的数据需要进行合并操作。可以通过pandas库的 merge函数 和 concat函数 来实现数据集的合并。 根据 一个或多个键 将不同DataFrame中的 行 连接起来。 说明:类似于关系数

    2024年02月15日
    浏览(44)
  • 数据分析Pandas专栏---第三章<Pandas合并list和字典>

    在处理数据时,经常会遇到需要操作和转换DataFrame的场景。特别是当涉及到从单个或多个字典合成DataFrame,以及合并多个DataFrame时,适当的方法和技巧可以极大地简化程序逻辑并提高代码的可读性与效率。此外,数据操作过程中,索引的正确管理是保持数据完整性的关键。本

    2024年02月21日
    浏览(51)
  • Python-pandas:数据合并merge函数用法详解

    介绍一下数据分析中很常用的一个函数——merge,它能够进行高效的数据合并操作。先看一下语法格式及其初步解释: 生成的两个DataFrame对象如下: 1、参数left,right: 将df_d作为左侧的frame,df_e作为右侧的frame,则参数left=df_d,right=df_e; 2、参数how: 当参数how=\\\'left\\\':仅使用左

    2024年02月15日
    浏览(48)
  • 【Pandas 入门-2】增加,删除与合并数据 concat, merge

    1.3.1 增加数据 在原数据末尾增加一列时,语法为 df[‘新列名\\\'] = 某个值或某个元素个数与 DataFrame 列数相同的列表 ,例如: 姓名 统计学 高数 英语 计算机 0 张三 95 82 84 92 1 赵四 100 90 89 69 2 王五 88 88 78 75 在原数据末尾增加一行数据时,比较简单的方式是用 loc 函数, df.loc[行

    2024年02月13日
    浏览(39)
  • pandas数据分析40——读取 excel 合并单元格的表头

    案例背景 真的很容易疯....上班的单位的表格都是不同的人做的,所以就会出现各种合并单元格的情况,要知道我们用pandas读取数据最怕合并单元格了,因为没规律...可能前几列没合并,后面几列又合并了....而且pandas对于索引很严格,这种合并单元读取进来就是空的,还怎么

    2024年02月12日
    浏览(57)
  • 用使用pandas拆分excel单元格

    要使用pandas拆分Excel单元格,你可以使用pandas的 read_excel 函数读取Excel文件,然后使用 str.split() 方法拆分单元格。 以下是一个示例代码,演示如何使用pandas拆分Excel单元格: python复制代码 import pandas as pd # 读取Excel文件 df = pd.read_excel(\\\'file.xlsx\\\') # 拆分单元格 df[\\\'column_name\\\'] = df[

    2024年01月20日
    浏览(34)
  • 获取图像的属性、图像通道拆分合并实现

    图像的属性包括图像的高度、宽度、通道数、位深度等信息,这些属性可以帮助我们了解图像的基本特征。而图像的通道拆分和合并则是对图像的颜色通道进行操作,可以用于提取、修改或合成图像的不同颜色信息。 首先,让我们来介绍图像的属性。图像的高度和宽度表示了

    2024年02月09日
    浏览(45)
  • 头歌 HBase 性能优化:优化拆分和合并

    1. source /etc/profile 2. 3. start - all . sh zkServer . sh start start - hbase.sh    进入终端界面 hbase shell create \\\'stu\\\' ,{ NAME = \\\'info\\\' },{ NAME = \\\'desc\\\' }, SPLITS =   [ \\\'1000\\\' , \\\'2000\\\' , \\\'3000\\\' , \\\'4000\\\' , \\\'5000\\\'] put \\\'stu\\\' , \\\'15653216541\\\' , \\\'info:num\\\' , \\\'14561235651\\\' put \\\'stu\\\' , \\\'15653216541\\\' , \\\'info:s_name\\\' , \\\'cg\\\' put \\\'stu\\\' , \\\'15653216541\\\' ,

    2024年04月14日
    浏览(62)
  • Python实现Excel的批量合并和拆分操作

    引言 Excel是一种常用的电子表格软件,广泛应用于数据处理、数据分析和报表生成等工作中。在处理大量的Excel文件时,人工逐个操作无疑是费时费力的。然而,通过使用Python编程语言和相关扩展库,我们可以实现对Excel文件的批量合并和拆分操作,以提高工作效率。本文将详

    2024年02月12日
    浏览(97)
  • 3D模型拆分与合并展示,IVX真的可以简单实现

    随着IT行业的发展,低代码和无代码平台已成为未来的发展趋势,因为它们能够大大提高软件开发的效率。iVX作为其中的一员,具有非常显著的优势,如逻辑完备性、操作流畅性、面向对象设计、可独立作为编程语言等方面的特点。它简单易用、功能丰富、高效稳定,不仅可

    2024年02月02日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包