Python 用数据帧填充插槽的所有排列/组合
我的问题是: 我有一个5槽的空间,我必须用给定的数据帧系列填满所有的可能性(甚至重复):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
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