Python 如何从多个列表的每个唯一组合创建熊猫数据框?

Python 如何从多个列表的每个唯一组合创建熊猫数据框?,python,pandas,combinations,nested-lists,Python,Pandas,Combinations,Nested Lists,我试图创建一个基于四个不同长度列表的每个独特组合的熊猫数据框架。我是一个相对初学者 我构建了一个嵌套的组合列表,如下所示: 组合=[ [ [ [ [w,x,y,z]表示性别中的w ] 对于x年代 ] 对于目的地代码中的y ] 对于原点_代码中的z ] 其中每个都是一个简单的列表。这很好,但我不知道如何将其放入一个四列框架中,每个独特的组合对应一行,如下所示: 我试过这个: total = pd.DataFrame(columns=['origin', 'destination', 'age

我试图创建一个基于四个不同长度列表的每个独特组合的熊猫数据框架。我是一个相对初学者

我构建了一个嵌套的组合列表,如下所示:

组合=[
[
[
[
[w,x,y,z]表示性别中的w
]
对于x年代
]
对于目的地代码中的y
] 
对于原点_代码中的z
]
其中每个都是一个简单的列表。这很好,但我不知道如何将其放入一个四列框架中,每个独特的组合对应一行,如下所示:

我试过这个:

total = pd.DataFrame(columns=['origin', 'destination', 'age', 'sex'])
    for first in combinations:
        for second in first:
            for third in second:
                for fourth in third:
                    summary_table = pd.DataFrame({'Origin': [first], 'Destination': [second], 'Age': [third], 'Sex:' [fourth])
                    total.append(summary_table)
这根本不起作用


任何指针都会非常有用——我不确定这是否是一个简单的错误,或者我是否以错误的方式处理整个问题。有什么想法吗?

使用
itertools.product
。它返回作为参数给定的序列的笛卡尔积。

这是否正确

combinations = [
    [w,x,y,z]
    for w in sexes
    for x in ages
    for y in destination_codes
    for z in origin_codes
]
total_df = pd.DataFrame(combinations, columns=['sex', 'age', 'origin', 'destination'])
但是在这里使用列表理解可能效率很低。使用
itertools.product

from itertools import product
combinations = list(product(ages, ages, origin_codes, destination_codes))
试试这个:

将熊猫作为pd导入
将numpy作为np导入
性别=[“m”,“f”]
年龄=[“年轻”、“中年”、“老年”]
目的地编码=[“123”、“039”、“0230”、“0249”]
原产地代码=[“304”、“0430”、“034i39”、“430”、“0349”]
组合数组([[a,b,c,d]表示a在性别中表示b在年龄中表示c在目的地中表示d在源代码中表示d])
df=pd.DataFrame(数据={“性别”:合并的【:,0],“年龄”:合并的【:,1],“目的地”:合并的【:,2],“来源”:合并的【:,3]})

如果您能分享一个例子来解释输入的样子和预期的输出,那就更好了。请标记您接受的答案,这样其他人就会知道问题已经解决了。非常感谢您-itertools方法奏效了。