我有一个数据框(表格)如下:
颜色 | 汽车 |
---|---|
红、蓝、绿 | 宝马、奔驰 |
蓝色、黄色 | 保时捷、吉普车、沃尔沃 |
组合对表: 我想形成一个新的数据框(表),由两列之间的组合对组成
颜色 | 汽车 |
---|---|
红色 | 宝马 |
红色 | 梅赛德斯 |
蓝色 | 宝马 |
蓝色 | 梅赛德斯 |
绿色 | 宝马 |
绿色 | 梅赛德斯 |
蓝色 | 保时捷 |
蓝色 | 吉普车 |
蓝色 | 沃尔沃 |
黄色 | 保时捷 |
黄色 | 吉普车 |
黄色 | 沃尔沃 |
类似的事情可以通过嵌套 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']
您可以使用这种方法:
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