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

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日

相关文章

  • pandas如何将datetime64[ns]转为字符串日期

    将datetime64[ns]类型转为字符串日期,可以使用pandas中的strftime函数。 strftime函数可以将时间日期格式化为字符串。 下面是完整的攻略: 读取数据并将日期列的格式转换为datetime64[ns]类型 “`python import pandas as pd df = pd.read_csv(‘data.csv’) df[‘…

    python 2023年5月14日
    00
  • Pandas如何对Categorical类型字段数据统计实战案例

    Pandas是Python中一个功能强大的数据分析库,其中对于Categorical类型字段的数据统计也提供了非常便利的支持。下面我们将详细讲解如何使用Pandas进行Categorical类型字段的数据统计,包括以下内容: Categorical类型字段的基本介绍 Categorical类型字段的创建和转换 Categorical类型字段的数据统计 案例分…

    python 2023年5月14日
    00
  • 用Python中的Pandas绘制密度图

    下面我将为您详细讲解用Python中的Pandas绘制密度图的完整攻略。 一、什么是密度图? 密度图是在概率论中使用较多的一种单变量连续概率分布估计方式,它通过计算一个连续变量的概率密度函数来描述该变量的分布情况。在统计学中,将概率密度函数图画出来的图像被称为密度曲线。 二、Pandas中绘制密度图的步骤 接下来,我们将学习如何使用Pandas绘制密度图,主…

    python-answer 2023年3月27日
    00
  • 在Python中把多个CSV文件读入独立的DataFrames中

    在Python中想要把多个CSV文件读入独立的DataFrames中,可以使用Python的pandas库。下面是一个详细的攻略: 步骤1:导入pandas库 首先需要导入pandas库,其常用的别名是pd。可以使用以下代码导入: import pandas as pd 步骤2:读取CSV文件 要读入CSV文件,可以使用pandas的read_csv函数。可…

    python-answer 2023年3月27日
    00
  • 关于pyqt5弹出提示框的详细介绍

    关于pyqt5弹出提示框的详细介绍,可以分为以下几步: 1. 安装pyqt5库 要使用pyqt5弹出提示框,首先需要安装pyqt5库。可以通过pip命令在命令行中进行安装: pip install pyqt5 2. 导入必要的库 完成安装后,在代码中导入必要的库: from PyQt5.QtWidgets import QMessageBox, QAppli…

    python 2023年5月14日
    00
  • pandas中的DataFrame数据遍历解读

    pandas中的DataFrame数据遍历 pandas是数据分析领域广泛使用的库之一,其中DataFrame是pandas中最为重要的数据结构之一。为了快速有效地操作DataFrame中的数据,遍历DataFrame是一个重要的技巧。接下来,将为大家介绍pandas中DataFrame的数据遍历解读。 利用iterrows()遍历DataFrame ite…

    python 2023年5月14日
    00
  • Python基于pyecharts实现关联图绘制

    Python基于pyecharts实现关联图绘制是一种挺常用的数据可视化方式,可以很清晰地展示数据之间的关联关系。下面我将为您提供一个完整的攻略,帮助您学会如何用Python的pyecharts库绘制关联图。 1. 安装相关库 如果您还没有安装pyecharts和pandas等库,可以通过以下命令安装: pip install pyecharts panda…

    python 2023年5月14日
    00
  • Python matplotlib实用绘图技巧汇总

    Python matplotlib实用绘图技巧汇总 简介 matplotlib是Python中常用的数据可视化库,其提供了各种绘图工具,方便用户进行数据分析和呈现。本文将介绍一些实用的matplotlib绘图技巧,并提供相应的示例说明。 技巧汇总 1. 定义坐标轴范围 通过plt.xlim()和plt.ylim()可以定义横纵坐标轴的范围。 示例代码: im…

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