取出 2 列中的列表元素,找到列之间的所有组合对,然后形成由这些对组成的 2 列

问题描述 投票:0回答:1

我有一个数据框(表格)如下:

颜色 汽车
红、蓝、绿 宝马、奔驰
蓝色、黄色 保时捷、吉普车、沃尔沃

组合对表: 我想形成一个新的数据框(表),由两列之间的组合对组成

颜色 汽车
红色 宝马
红色 梅赛德斯
蓝色 宝马
蓝色 梅赛德斯
绿色 宝马
绿色 梅赛德斯
蓝色 保时捷
蓝色 吉普车
蓝色 沃尔沃
黄色 保时捷
黄色 吉普车
黄色 沃尔沃

类似的事情可以通过嵌套 for 循环来完成,但我不确定如何在 Pandas 中执行此操作,然后创建上面的组合对表。

list_1 = ["red", "blue", "green"]
list_2 = ['bmw', ' mercedes']

output = []
for i in list_2:
    for j in list_1:
        output.append([j, i])
print(*output, sep=', ')

['red', 'bmw'], ['blue', 'bmw'], ['green', 'bmw'], ['red', ' mercedes'], ['blue', ' mercedes'], ['green', ' mercedes']
python pandas combinations
1个回答
0
投票

您可以使用这种方法:

for col in df.columns:
    df[col] = df[col].str.split(", ")
    df = df.explode(col)
    color      cars
0     red       BMW
0     red  Mercedes
0    blue       BMW
0    blue  Mercedes
0   green       BMW
0   green  Mercedes
1    blue   Porsche
1    blue      Jeep
1    blue     Volvo
1  yellow   Porsche
1  yellow      Jeep
1  yellow     Volvo
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.