这是我想做的。
我有两个 Pandas 数据框
元素 list 和购买数量
ITEM, QTY
A,1
B,2
C,3
每个项目可用的位置。一件商品可以在多个地点购买。
ITEM, LOCATION
A, LOC1
B, LOC2
B, LOC3
C, LOC4
C, LOC5
我需要找出可以购买 ITEMS 的所有可能组合
组合1
A, LOC1
B, LOC2
C, LOC4
组合2
A, LOC1
B, LOC2
C, LOC5
组合3
A, LOC1
B, LOC3
C, LOC4
组合4
A, LOC1
B, LOC3
C, LOC5
最佳答案
您可以使用 itertools.product
。对于可变数量的变量,您可以使用字典。
from itertools import product
d = df2.groupby('ITEM')['LOCATION'].apply(list).to_dict()
dfs = {i: pd.DataFrame({'LOCATION': j}).assign(ITEM=d.keys())
for i, j in enumerate(product(*d.values()), 1)}
print(dfs)
{1: LOCATION ITEM
0 LOC1 A
1 LOC2 B
2 LOC4 C,
2: LOCATION ITEM
0 LOC1 A
1 LOC2 B
2 LOC5 C,
3: LOCATION ITEM
0 LOC1 A
1 LOC3 B
2 LOC4 C,
4: LOCATION ITEM
0 LOC1 A
1 LOC3 B
2 LOC5 C}
关于python - 在 Python 中获取两个列表组合的最佳方法是什么 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51386017/