如何解决在python中使用itertools进行组合
我有以下 4 列表格:
cl1: a,b,c
cl2: x,y,z
cl3: 1,2,3
cl4: m,n
我想要的 df 输出:
a_x_1_m
a_x_1_n
a_x_2_m
a_x_2_n
a_x_3_m
a_x_3_n
a_y_1_m
a_y_1_n
a_y_2_m
a_y_2_n
...
c_z_3_m
c_z_3_n
我需要它来循环并组合所有可能的组合。使用 python 执行此操作的最佳方法是什么?
解决方法
通过表格,我假设您只是指嵌套列表(也适用于嵌套元组或类似的)。
entryBox = tk.Entry(mainWindow,textvariable=v) entryBox.grid(column=0,row=1)
,
我假设表格是指一个熊猫数据框,所以第一步是将感兴趣的列收集到列表列表中:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<version>3.0.0</version>
<executions>
<execution>
<id>Execute External Command</id>
<phase>install</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>
${basedir}/external.sh
</executable>
</configuration>
</execution>
</executions>
</plugin>
现在,如果您有任何包含字符串以外的元素的列表,则需要转换它们:
cols_to_extract = ['cl1','cl2','cl3','cl4']
cols_to_list = [df[col].tolist() for col in cols_to_extract]
最后使用 cols_to_list = [[str(m) for m in n] for n in cols_to_list]
推导出这些列表的乘积:
itertools
结果应该与下面类似:
import itertools
for comb in map('_'.join,itertools.product(*cols_to_list)):
print(comb)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。