当处理多个 DataFrame 时,有几种常见的拼接方法可以使用,包括 concat、merge、join 等。让我通过举例说明这些方法的使用。
假设我们有两个 DataFrame,分别包含了不同商品的信息:
import pandas as pd
# DataFrame 1: 包含商品编号和价格
data1 = {
'item_id': ['A', 'B', 'C'],
'price': [10, 20, 15]
}
df1 = pd.DataFrame(data1)
# DataFrame 2: 包含商品编号和销量
data2 = {
'item_id': ['A', 'B', 'D'],
'sales': [100, 200, 150]
}
df2 = pd.DataFrame(data2)
print("DataFrame 1:")
print(df1)
print("\nDataFrame 2:")
print(df2)
这将输出:
DataFrame 1:
item_id price
0 A 10
1 B 20
2 C 15
DataFrame 2:
item_id sales
0 A 100
1 B 200
2 D 150
现在,让我们使用各种拼接方法将这两个 DataFrame 进行合并。
1. 使用 concat 拼接
concat 方法用于沿着指定轴(默认是行轴)拼接多个 DataFrame。
concatenated = pd.concat([df1, df2], axis=0, ignore_index=True)
print("Concatenated DataFrame:")
print(concatenated)
这将输出:
Concatenated DataFrame:
item_id price sales
0 A 10.0 NaN
1 B 20.0 NaN
2 C 15.0 NaN
3 A NaN 100.0
4 B NaN 200.0
5 D NaN 150.0
2. 使用 merge 拼接
merge 方法用于根据一个或多个键将两个 DataFrame 进行合并。
merged = pd.merge(df1, df2, on='item_id', how='outer')
print("Merged DataFrame:")
print(merged)
这将输出:
Merged DataFrame:
item_id price sales
0 A 10.0 100.0
1 B 20.0 200.0
2 C 15.0 NaN
3 D NaN 150.0
3. 使用 join 拼接
join 方法用于根据索引(行标签)将两个 DataFrame 进行合并。
df1.set_index('item_id', inplace=True)
df2.set_index('item_id', inplace=True)
joined = df1.join(df2, how='outer', lsuffix='_left', rsuffix='_right')
print("Joined DataFrame:")
print(joined)
这将输出:
Joined DataFrame:
price sales
item_id
A 10.0 100.0
B 20.0 200.0
C 15.0 NaN
D NaN 150.0
这些都是常见的拼接方法,选择哪种方法取决于你的数据结构和需要。