pandas 中行的笛卡尔积?

Cartesian product of rows in pandas?

我正在处理的数据 (https://mushroom.mathematik.uni-marburg.de/files/PrimaryData/primary_data_edited.csv) 在某些条目中有列表,我想将这些列表扩展为它们元素的笛卡尔积。下图是数据框 header.

中的两列

我想要的输出是这样的:

cap-diameter | cap-shape
10 | x
10 | f
20 | x
20 | f
5 | p
5 | x
10 | p
10 | x
...

所以我不需要每列中所有条目的笛卡尔积,只需要相应行的笛卡尔积。我认为 pd.explode() 可能是一个很好的起点,但我不确定如何完成。提前致谢。

连续展开每一列

df = df.explode('cap-diameter')
df = df.explode('cap-shape')