pandas 中数据不均匀的笛卡尔积

Cartesian product in pandas with uneven data

我有一个输入 excel 文件如下:

我需要做这个 table 的笛卡尔积如下:

...

依此类推,直到我得到 3x4x2x3x4 = 288 行。

如何在 pandas 中执行此操作?

这是我使用 pandas.MultiIndex:

解决问题的方法
import pandas as pd
from io import StringIO
# Create sample data
data = 'A,B,C,D,E\nw2,a,xx,r1,50\nw4,b,mx,r2,51\nw8,c,,r5,52\n,d,,,53\n'
# Read sample for this we need to use read_csv with StrigIO as input
df = pd.read_csv(StringIO(data))
# Use MultiIndex 
# To get the expected result drop na values
idx = pd.MultiIndex.from_product([df[x].dropna().values for x in df.columns],names=df.columns)
# Create new dataframe using the multi-index
dfn = idx.to_frame(index=False)
print(dfn)