如何在pandas中生成所有类别组合并填充对应的相同值
实现方案
可以通过拼接原数据与交换V1、V2列后的数据集实现需求,全程为pandas矢量化操作,没有显式循环,处理大数据量时效率很高。
完整实现代码
import pandas as pd # 构造原始数据 df1 = pd.DataFrame({'V1':['A','A','B'], 'V2':['B','C','C'], 'Value':[4, 1, 5]}) # 核心逻辑:交换V1和V2列,和原表拼接 df_swap = df1.rename(columns={'V1':'V2', 'V2':'V1'}) df2 = pd.concat([df1, df_swap], ignore_index=True) # 如果需要匹配示例的输出顺序,增加下面这行排序即可 df2 = df2.sort_values('Value', ignore_index=True) print(df2)
输出结果
| V1 | V2 | Value |
|---|---|---|
| A | C | 1 |
| C | A | 1 |
| A | B | 4 |
| B | A | 4 |
| B | C | 5 |
| C | B | 5 |
如果你的原始数据存在双向重复的配对,可在拼接后增加df2 = df2.drop_duplicates()去重即可。
内容的提问来源于stack exchange,提问作者ARAT
相关产品推荐
相关产品推荐

