基于嵌套循环创建python数据帧

基于嵌套循环创建python数据帧,python,pandas,loops,dataframe,Python,Pandas,Loops,Dataframe,我是Python熊猫的新手,如果这个问题很简单,我很抱歉。 我有三份清单: A = ['A','B','C'] M = ['1','2','3'] F = ['plus','minus','square'] 我想把这些列表组合起来,并在数据框中显示出来。 我已尝试使用list.append new_list = [] for i in A: new_list.append(i) for j in (M): new_list.append(j) print(new

我是Python熊猫的新手,如果这个问题很简单,我很抱歉。 我有三份清单:

A = ['A','B','C']
M = ['1','2','3']
F = ['plus','minus','square']
我想把这些列表组合起来,并在数据框中显示出来。 我已尝试使用list.append

new_list = []
for i in A:
    new_list.append(i)
    for j in (M):
        new_list.append(j)
print(new_list)
['A', '1', '2', '3', 'B', '1', '2', '3', 'C', '1', '2', '3']
我很困惑,如何获得这样的输出(在dataframe中):


似乎您想要创建所有可能排列的所有列表。你可以用itertools和熊猫来做这件事。Itertools是python的本机库:

import pandas as pd
import itertools

A = ['A','B','C']
M = ['1','2','3']
F = ['plus','minus','square']

df = pd.DataFrame(list(itertools.product(A,M,F)), columns=['A','M','F'])
print(df)
输出:

    A  M       F
0   A  1    plus
1   A  1   minus
2   A  1  square
3   A  2    plus
4   A  2   minus
5   A  2  square
6   A  3    plus
7   A  3   minus
8   A  3  square
9   B  1    plus
10  B  1   minus
11  B  1  square
12  B  2    plus
13  B  2   minus
14  B  2  square
15  B  3    plus
16  B  3   minus
17  B  3  square
18  C  1    plus
19  C  1   minus
20  C  1  square
21  C  2    plus
22  C  2   minus
23  C  2  square
24  C  3    plus
25  C  3   minus
26  C  3  square

似乎您想要创建所有可能排列的所有列表。你可以用itertools和熊猫来做这件事。Itertools是python的本机库:

import pandas as pd
import itertools

A = ['A','B','C']
M = ['1','2','3']
F = ['plus','minus','square']

df = pd.DataFrame(list(itertools.product(A,M,F)), columns=['A','M','F'])
print(df)
输出:

    A  M       F
0   A  1    plus
1   A  1   minus
2   A  1  square
3   A  2    plus
4   A  2   minus
5   A  2  square
6   A  3    plus
7   A  3   minus
8   A  3  square
9   B  1    plus
10  B  1   minus
11  B  1  square
12  B  2    plus
13  B  2   minus
14  B  2  square
15  B  3    plus
16  B  3   minus
17  B  3  square
18  C  1    plus
19  C  1   minus
20  C  1  square
21  C  2    plus
22  C  2   minus
23  C  2  square
24  C  3    plus
25  C  3   minus
26  C  3  square

您需要的是三个集合的笛卡尔乘积:

import pandas as pd
from itertools import product

pd.DataFrame(list(product(A,M,F)), columns=['A', 'M', 'F'])

您需要的是三个集合的笛卡尔乘积:

import pandas as pd
from itertools import product

pd.DataFrame(list(product(A,M,F)), columns=['A', 'M', 'F'])

您可以使用
pd.DataFrame(list(product(A,M,F)),columns=['A','M','F'])
product在这里的含义是什么?您需要这样从itertools导入产品:
from itertools import product
您可以使用
pd.DataFrame(list(product(A,M,F)),columns=['A','M','F']))
这里的
产品
是什么意思?您需要像这样从itertools导入产品:
从itertools导入产品