pandas如何求并集
时间: 2025-03-22 13:02:10 浏览: 26
### 使用 Pandas 计算并集的方法
#### 对于 Series 的并集
当需要计算两个 `pandas.Series` 的并集时,可以通过将其转换为集合(set),再利用 Python 集合的内置函数来实现。以下是具体代码示例:
```python
import pandas as pd
# 创建两个示例 Series
s1 = pd.Series(['A', 'B', 'C'])
s2 = pd.Series(['B', 'C', 'D'])
# 转换为集合并求并集
union_set = set(s1).union(set(s2))
# 将结果重新转换为 Series
result_series = pd.Series(list(union_set))
print(result_series)
```
上述方法通过将 `Series` 数据结构转化为集合后调用 `.union()` 函数完成并集运算[^4]。
#### 对于 DataFrame 列的并集
对于两个 `DataFrame` 中特定列的并集操作,可以采用类似的逻辑。例如:
```python
import pandas as pd
# 创建两个示例 DataFrame
df1 = pd.DataFrame({'col': ['A', 'B', 'C']})
df2 = pd.DataFrame({'col': ['B', 'C', 'D']})
# 提取对应列并转为集合求并集
union_set = set(df1['col']).union(set(df2['col']))
# 结果存储到新列表或 Series
result_list = list(union_set)
result_series = pd.Series(result_list)
print(result_series)
```
此方式适用于提取单个列的数据进行并集运算。
#### 合并多个 Series 或 DataFrame 行记录作为并集
如果目标是合并两个 `DataFrame` 或者 `Series` 所有行记录形成一个新的整体数据集,则可以直接使用 `pd.concat()` 方法,并设置参数 `ignore_index=True` 来重置索引。如下所示:
```python
import pandas as pd
# 定义两个 Series
s1 = pd.Series([1, 2, 3])
s2 = pd.Series([4, 5])
# 垂直拼接 (axis=0 默认值),得到新的 Series
combined_s = pd.concat([s1, s2], ignore_index=True)
print(combined_s)
# 如果是 DataFrame 可以同样操作
df1 = pd.DataFrame({'A': [1, 2]})
df2 = pd.DataFrame({'A': [3, 4]})
combined_df = pd.concat([df1, df2], ignore_index=True)
print(combined_df)
```
这里需要注意的是,默认情况下 `concat` 是按照行方向堆叠(即轴向为 0)。这相当于实现了两个序列或者表之间所有元素无重复保留下的联合效果[^2]。
另外,在某些场景下可能还需要考虑去重问题,此时可以在最终结果上应用 `.drop_duplicates()` 方法进一步优化输出。
---
阅读全文
相关推荐





