在前面的课程中,咱们学习了数据筛选和排序。今天,咱们将学习怎样将多个数据集合并成一个统一的数据集。
数据连接概述
数据连接是数据分析中的一项基本技能,它准许咱们将来自区别源自的数据集组合起来,以便进行更深入的分析。
内连接
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)
|