在Python中获得两个列表组合的最佳方法是什么

2024-07-05 12:19:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我想做的。你知道吗

我有两个数据帧

要购买的项目和数量列表

ITEM, QTY    
A,1
B,2
C,3

每个项目可用的位置。一个项目可以在多个位置提供。你知道吗

ITEM, LOCATION
A, LOC1
B, LOC2
B, LOC3
C, LOC4
C, LOC5

我需要找出所有可能的组合项目可以购买

组合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

Tags: 数据项目列表数量locationitemqtyloc1
1条回答
网友
1楼 · 发布于 2024-07-05 12:19:13

您可以使用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}

相关问题 更多 >