python pandas数据处理教程之合并与拼接

yizhihongxing

Python Pandas数据处理教程之合并与拼接

本教程将介绍Python Pandas库中的合并与拼接方法。在实际数据处理中,数据通常分散在多个表格或文件中,需要进行合并与拼接,以实现数据分析和统计处理的目的。Pandas库提供了多种方法来处理不同类型的数据,例如:merge(), join(), concat()等。

准备数据

在学习Pandas的合并与拼接方法之前,我们需要先准备一些数据。我们可以使用Pandas库中的read_csv()函数读取CSV文件或使用read_excel()函数读取Excel文件作为演示数据。

例如,在本教程中,我们将使用以下两个练习数据集:

  1. sales.csv:包含销售业绩数据,具有以下特征:

  2. order_id:订单ID

  3. customer_id:客户ID
  4. order_date:订单日期
  5. product_name:产品名称
  6. quantity:销售数量
  7. price_per_unit:每个单位的价格

的数据

order_id,customer_id,order_date,product_name,quantity,price_per_unit
1001,001,2019-01-01,Apple,10,2.2
1001,001,2019-01-01,Banana,20,1.3
1002,002,2019-01-02,Orange,5,3.1
1003,003,2019-01-03,Pear,15,1.7
1002,002,2019-01-02,Watermelon,2,6.2
  1. customers.csv:包含客户数据,具有以下特征:

  2. customer_id:客户ID

  3. customer_name:客户名称
  4. city:所在城市
  5. state:所在州
customer_id,customer_name,city,state
001,Alice,New York,NY
002,Bob,San Francisco,CA
003,Eve,Los Angeles,CA
004,Jeff,Chicago,IL

合并数据

在Pandas库中,合并方法将两个数据集中的记录合并成一个数据集。我们可以使用merge()函数来实现数据合并,合并的结果取决于合并的方式和合并键的选择。Pandas库中支持四种数据合并方式,包括“inner”、“outer”、“left”和“right”(其中,“left”和“right”通常称为“left outer join”和“right outer join”)。

1. inner join

内连接是一个常见的数据合并方式,仅返回具有匹配键的记录。我们可以通过指定“how = 'inner'”或“不指定how参数”来进行内连接操作。

例如,我们将sales.csv和customers.csv数据集合并,连接键为“customer_id”,具体代码如下:

import pandas as pd

sales_data = pd.read_csv('sales.csv')
customers_data = pd.read_csv('customers.csv')

# 内连接,连接键为customer_id
merged_data = pd.merge(sales_data, customers_data, on='customer_id')
print(merged_data)

输出结果:

   order_id customer_id  order_date product_name  quantity  price_per_unit customer_name           city state
0      1001         001  2019-01-01        Apple        10             2.2         Alice       New York    NY
1      1001         001  2019-01-01       Banana        20             1.3         Alice       New York    NY
2      1002         002  2019-01-02       Orange         5             3.1           Bob  San Francisco    CA
3      1002         002  2019-01-02   Watermelon         2             6.2           Bob  San Francisco    CA
4      1003         003  2019-01-03         Pear        15             1.7           Eve    Los Angeles    CA

上面的代码中,“on”参数指定了连接键(即“customer_id”),“how”参数未指定,默认为“inner”。

2. outer join

外连接是将两个数据集中的所有记录合并成一个数据集,缺失值用NaN填充组合键。我们可以通过指定“how = 'outer'”来进行外连接操作。

例如,我们将sales.csv和customers.csv数据集进行外连接,连接键为“customer_id”,具体代码如下:

import pandas as pd

sales_data = pd.read_csv('sales.csv')
customers_data = pd.read_csv('customers.csv')

# 外连接,连接键为customer_id
merged_data = pd.merge(sales_data, customers_data, on='customer_id', how='outer')
print(merged_data)

输出结果:

   order_id customer_id  order_date product_name  quantity  price_per_unit customer_name           city state
0      1001         001  2019-01-01        Apple      10.0             2.2         Alice       New York    NY
1      1001         001  2019-01-01       Banana      20.0             1.3         Alice       New York    NY
2      1002         002  2019-01-02       Orange       5.0             3.1           Bob  San Francisco    CA
3      1002         002  2019-01-02   Watermelon       2.0             6.2           Bob  San Francisco    CA
4      1003         003  2019-01-03         Pear      15.0             1.7           Eve    Los Angeles    CA
5       NaN         004         NaN          NaN       NaN             NaN          Jeff        Chicago    IL

上面的代码中,“how”参数指定为“outer”。

拼接数据

拼接操作是将多个数据集中的记录组合成一个数据集。在Pandas中,我们可以使用concat()函数来进行数
据集的拼接。拼接的方式包括横向拼接和纵向拼接。

1. 横向拼接

横向拼接是将两个数据集在行方向上进行拼接。我们可以使用concat()函数,通过指定“axis = 1”来进行横向拼接操作。

例如,我们将sales.csv与customers.csv拼接,具体代码如下:

import pandas as pd

sales_data = pd.read_csv('sales.csv')
customers_data = pd.read_csv('customers.csv')

# 横向拼接
merged_data = pd.concat([sales_data, customers_data], axis=1)
print(merged_data)

输出结果:

   order_id customer_id  order_date product_name  quantity  price_per_unit customer_id customer_name           city state
0      1001         001  2019-01-01        Apple        10             2.2         001         Alice       New York    NY
1      1001         001  2019-01-01       Banana        20             1.3         002           Bob  San Francisco    CA
2      1002         002  2019-01-02       Orange         5             3.1         003           Eve    Los Angeles    CA
3      1003         003  2019-01-03         Pear        15             1.7         004          Jeff        Chicago    IL
4      1002         002  2019-01-02   Watermelon         2             6.2         NaN           NaN           NaN   NaN

在上面的代码中,我们使用了concat()函数进行横向拼接,指定“axis = 1”表示在行方向上拼接。

2. 纵向拼接

纵向拼接是将两个数据集在列方向上进行拼接。我们可以使用concat()函数,通过指定“axis = 0”来进行纵向拼接操作。

例如,我们将两个相同结构的数据集进行纵向拼接,具体代码如下:

import pandas as pd

data1 = pd.DataFrame({'Col1':[1,2,3],'Col2':[4,5,6],'Col3':[7,8,9]})
data2 = pd.DataFrame({'Col1':[10,11,12],'Col2':[13,14,15],'Col3':[16,17,18]})

# 纵向拼接
merged_data = pd.concat([data1, data2], axis=0)
print(merged_data)

输出结果:

   Col1  Col2  Col3
0     1     4     7
1     2     5     8
2     3     6     9
0    10    13    16
1    11    14    17
2    12    15    18

在上面的代码中,我们使用了concat()函数进行纵向拼接,指定“axis = 0”表示在列方向上拼接。

结论

本教程向大家介绍了Python Pandas库中的合并与拼接方法,包括内连接、外连接、横向拼接和纵向拼接等。通过实践练习,你掌握了如何使用这些方法来进行数据处理与分析。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python pandas数据处理教程之合并与拼接 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 一文搞懂Python中Pandas数据合并

    我来为你详细讲解一下Python中Pandas数据合并的攻略。 1. 简介 Pandas是一个Python第三方库,提供了一种高效、便捷的数据处理工具,常用于数据清洗、分析和可视化。数据合并是数据处理过程中的常见操作之一,Pandas提供了多种数据合并手段,具体如下: concat:可以将两个或多个DataFrame对象进行简单的连接操作; merge:可以…

    python 2023年5月14日
    00
  • 如何在Python中用滚动平均法制作时间序列图

    首先,滚动平均法是对时间序列进行平滑处理的一种方法,它通过计算一段时间内的平均值来消除噪声,从而更好地显示趋势。在Python中可以使用pandas库和matplotlib库来制作时间序列图,并使用rolling函数来实现滚动平均法。 具体步骤如下: Step 1. 导入必要的库 import pandas as pd import matplotlib.p…

    python-answer 2023年3月27日
    00
  • Pandas处理缺失值的4种方法

    什么是缺失值 在实际数据分析过程中,经常会遇到一些数据缺失的情况,这种情况可能是由于以下原因导致的: 数据收集的不完整:有些数据可能由于各种原因无法获取或者未收集到。 数据输入错误:数据收集者可能会犯一些输入错误,例如遗漏一些数据或者输入了一些不正确的数据。 数据处理错误:数据处理过程中可能会犯一些错误,例如计算错误或者数据合并错误等。 数据保存错误:数据保…

    Pandas 2023年3月5日
    00
  • Pytorch数据读取之Dataset和DataLoader知识总结

    当使用PyTorch进行深度学习时,我们需要将数据转化为张量并通过模型传递,但如何将原始数据转化为张量呢?这就涉及到PyTorch数据读取中的Dataset和DataLoader两个重要的概念。 Dataset PyTorch中的Dataset是一个抽象类,代表数据集,它可以定义自己的数据形式、读取数据的方式、增加额外的预处理步骤等。我们只需继承该类,并实现…

    python 2023年5月14日
    00
  • Pandas 最常用的两种排序方法

    Pandas提供了两种排序方式:按标签排序和按数值排序。 按标签排序 按标签排序使用 .sort_index() 方法,可以按照索引的标签进行排序,默认为升序排列。例如: import pandas as pd # 创建一个示例DataFrame df = pd.DataFrame({'col1': [3, 1, 2], 'co…

    Pandas 2023年3月5日
    00
  • python数据处理67个pandas函数总结看完就用

    “python数据处理67个pandas函数总结看完就用”完整攻略 1. 为什么要学习pandas? pandas是一个强大的数据处理库,它能够处理和清洗各种各样的数据,包括表格数据、CSV文件、Excel文件、SQL数据库等等。如果你是一位数据分析师或科学家,学习pandas是必不可少的,因为它可以让你更快地进行数据分析和处理。 2. pandas的基本数…

    python 2023年5月14日
    00
  • 如何在Pandas数据框架中计算MOVING AVERAGE

    计算MOVING AVERAGE(移动平均)是Pandas使用频率非常高的一个操作,可以用来平滑数据、去除噪声等。下面是在Pandas数据框架中计算MOVING AVERAGE的完整攻略。 加载数据:首先需要导入Pandas库,并使用Pandas的read_csv函数加载数据。 import pandas as pd data = pd.read_csv(&…

    python-answer 2023年3月27日
    00
  • 详解pandas映射与数据转换

    详解pandas映射与数据转换攻略 Pandas是Python中非常流行的数据处理和分析库。Pandas中提供了很多方便易用的数据转换和映射功能,帮助我们快速对数据进行处理。本文将详细讲解Pandas中映射和转换的相关功能,以及示例说明。 Part 1 映射 1.1 映射原理 映射(Mapping)是一种比较常用的数据转换技术。在Pandas中,映射是对某一…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部