Python 循环列表以按行创建笛卡尔乘积
我想通过跨多个列表的叉积来扩展我的行。我目前使用的逻辑是:Python 循环列表以按行创建笛卡尔乘积,python,pandas,loops,product,cartesian,Python,Pandas,Loops,Product,Cartesian,我想通过跨多个列表的叉积来扩展我的行。我目前使用的逻辑是: list = [['Yes', 'No', 'Maybe'], ['Yes', 'No', 'Maybe']] index = pd.MultiIndex.from_product(list, names = ["column1", "column2"]) pd.DataFrame(index = index).reset_index() 不幸的是,这将不适用于多个列表。我怎样才能运行笛卡尔积,它看起来像这样: [[[
list = [['Yes', 'No', 'Maybe'], ['Yes', 'No', 'Maybe']]
index = pd.MultiIndex.from_product(list, names = ["column1", "column2"])
pd.DataFrame(index = index).reset_index()
不幸的是,这将不适用于多个列表。我怎样才能运行笛卡尔积,它看起来像这样:
[[['Yes'、'No'、'Maybe']、['Yes'、'No'、'Maybe']、[[[Yes'、'No'、'Maybe']、['Yes'、'No'、'Maybe']]
仍然只运行两列。我希望生成18(2*(3^2))的叉积。允许您从任意数量的iterables创建笛卡尔积:
itertools.product(*lst)
你能用你想要的预期输出更新这个问题吗?预期输出将是有用的预期输出,并且使每个列表不完全相同将极大地帮助人们理解18种产品应该来自哪里。也许您正在为lst中的x寻找
[[*itertools.product(*x)]
他们主要感兴趣的是,我在一个列表中嵌套了两个列表。我怎样才能在每个列表上单独运行上面包含的代码,并在最后附加它们?请查看并提供示例输入和输出,因为您的问题的措辞不清楚您实际需要完成什么,itertools.product
和pd.MultiIndex.from\u product
给出了几乎相同的结果。