Python 用数据帧填充插槽的所有排列/组合

Python 用数据帧填充插槽的所有排列/组合,python,pandas,dataframe,Python,Pandas,Dataframe,我的问题是: 我有一个5槽的空间,我必须用给定的数据帧系列填满所有的可能性(甚至重复): import pandas as pd s = pd.Series(['A', 'B', 'C', 'D']) len_combination = 5 我想得到: AAAAA 作为 我试过使用itertools,但使用组合工具时,我无法重复字母,而使用产品时,我无法仅生成一个字母 关于您对itertools的了解非常接近。产品理念: import pandas as pd from itertools

我的问题是:

我有一个5槽的空间,我必须用给定的数据帧系列填满所有的可能性(甚至重复):

import pandas as pd
s = pd.Series(['A', 'B', 'C', 'D'])
len_combination = 5
我想得到:

AAAAA
作为

我试过使用itertools,但使用组合工具时,我无法重复字母,而使用产品时,我无法仅生成一个字母


关于

您对itertools的了解非常接近。产品理念:

import pandas as pd
from itertools import product

combs = pd.DataFrame(list(product(['A', 'B', 'C', 'D'], repeat=5)))

In [95]: q.combs.head()
Out[95]: 
   0  1  2  3  4
0  A  A  A  A  A
1  A  A  A  A  B
2  A  A  A  A  C
3  A  A  A  A  D
4  A  A  A  B  A
编辑:如果要生成少于5个元素的子集排列,可以简单地链接上述方法:

from itertools import chain
combs_generator = chain(*(product('ABCD', repeat=k) for k in range(1,6)))
combs = pd.DataFrame(list(combs_generator))

       0     1     2     3 

4
0     A  None  None  None  None
1     B  None  None  None  None
2     C  None  None  None  None
3     D  None  None  None  None
4     A     A  None  None  None
5     A     B  None  None  None
6     A     C  None  None  None
7     A     D  None  None  None
8     B     A  None  None  None
9     B     B  None  None  None
10    B     C  None  None  None
11    B     D  None  None  None
12    C     A  None  None  None
13    C     B  None  None  None
14    C     C  None  None  None
15    C     D  None  None  None

请澄清你的问题。我特别不明白输出是什么。订单重要吗?(BA和AB相同)没有AB和BA不一样,我猜OP想要重复1,2,…,5;不只是5个。
from itertools import chain
combs_generator = chain(*(product('ABCD', repeat=k) for k in range(1,6)))
combs = pd.DataFrame(list(combs_generator))

       0     1     2     3 

4
0     A  None  None  None  None
1     B  None  None  None  None
2     C  None  None  None  None
3     D  None  None  None  None
4     A     A  None  None  None
5     A     B  None  None  None
6     A     C  None  None  None
7     A     D  None  None  None
8     B     A  None  None  None
9     B     B  None  None  None
10    B     C  None  None  None
11    B     D  None  None  None
12    C     A  None  None  None
13    C     B  None  None  None
14    C     C  None  None  None
15    C     D  None  None  None