外链论坛

 找回密码
 立即注册
搜索
查看: 58|回复: 2

pandas学习笔记19-数据合并与连接(一)

[复制链接]

2639

主题

181

回帖

9916万

积分

论坛元老

Rank: 8Rank: 8

积分
99160606
发表于 2024-8-4 15:45:27 | 显示全部楼层 |阅读模式

在前面的课程中,咱们学习了数据筛选和排序。今天,咱们将学习怎样将多个数据集合并成一个统一的数据集。

数据连接概述

数据连接是数据分析中的一项基本技能,它准许咱们将来自区别源自的数据集组合起来,以便进行更深入的分析。

内连接

python代码

import pandas as pd

# 创建示例数据集

df1 = pd.DataFrame({

Key: [A, B, C, D],

Value1: [1, 2, 3, 4]

})

df2 = pd.DataFrame({

Key: [B, D, E, F],

Value2: [5, 6, 7, 8]

})

# 内连接

inner_join = pd.merge(df1, df2, on=Key, how=inner)

print(inner_join)

外连接

python代码

# 外连接

outer_join = pd.merge(df1, df2, on=Key, how=outer)

print(outer_join)

左连接和右连接

python代码

# 左连接

left_join = pd.merge(df1, df2, on=Key, how=left)

# 右连接

right_join = pd.merge(df1, df2, on=Key, how=right)

print(left_join)

print(right_join)

参数和选项

- `on`: 指定连接的列名。

- `how`: 指定连接的类型,能够是inner, outer, left, right。

- `suffixes`: 当两个数据集中有相同名叫作的列时,用于区分它们的后缀。

实质案例演示

python代码

import pandas as pd

import numpy as np

# 客户信息表

data_customers = {

CustomerID: [1, 2, 3, 4],

Name: [Alice, Bob, Charlie, David],

Country: [USA, Canada, USA, UK]

}

df_customers = pd.DataFrame(data_customers)

# 订单信息表

data_orders = {

OrderID: [101, 102, 103, 104],

CustomerID: [1, 2, 3, 4],

OrderDate: pd.to_datetime([2023-01-01, 2023-01-02, 2023-01-03, 2023-01-04]),

Amount: [100, 200, 150, 300]

}

df_orders = pd.DataFrame(data_orders)

过程1:查看数据

首要,查看咱们的数据集。

python代码

print(df_customers)

print(df_orders)

过程2:内连接

运用内连接合并客户信息和订单信息,只保存匹配的客户ID。

python代码

# 内连接

inner_join = pd.merge(df_customers, df_orders, on=CustomerID, how=inner)

print(inner_join)

过程3:外连接

运用外连接合并客户信息和订单信息,保存所有客户和订单,即使某些订单匹配的客户信息。

python代码

# 外连接

outer_join = pd.merge(df_customers, df_orders, on=CustomerID, how=outer)

print(outer_join)

过程4:左连接

运用左连接合并客户信息和订单信息,保存所有客户信息,即使某些客户订单。

python代码

# 左连接

left_join = pd.merge(df_customers, df_orders, on=CustomerID, how=left)

print(left_join)

过程5:右连接

运用右连接合并客户信息和订单信息,保存所有订单信息,即使某些订单匹配的客户信息。

python代码

# 右连接

right_join = pd.merge(df_customers, df_orders, on=CustomerID, how=right)

print(right_join)

过程6:参数和选项

在merge()函数中,咱们能够运用区别的参数来定制连接的行径

python代码

# 运用区别的连接参数

suffixes = [_customer, _order]

merged_data = pd.merge(df_customers, df_orders, on=CustomerID, how=inner, suffixes=suffixes)

print(merged_data)

回复

使用道具 举报

2404

主题

528

回帖

9192万

积分

论坛元老

Rank: 8Rank: 8

积分
91921350
发表于 6 天前 | 显示全部楼层
我完全同意你的看法,期待我们能深入探讨这个问题。
回复

使用道具 举报

21

主题

962

回帖

-77

积分

限制会员

积分
-77
发表于 昨天 14:22 | 显示全部楼层
回顾历史,我们感慨万千;放眼未来,我们信心百倍。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-9-17 03:45 , Processed in 0.070057 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.