gpt4 book ai didi

python - 用数据帧填充槽的所有排列/组合

转载 作者:行者123 更新时间:2023-12-01 03:56:36 25 4
gpt4 key购买 nike

这是我的问题:

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

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

我想得到:

AAAAA

作为

A
CC
B
BA
AB
AAAAB
AABAA
DAACB

我尝试过使用itertools,但通过组合我无法重复这些字母,而通过产品我无法只产生一个字母。

问候

最佳答案

您很接近 itertools.product 的想法:

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

关于python - 用数据帧填充槽的所有排列/组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37354472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com