如何在循环中增加 i 以使用 python 到 select 不同的列

How to increment i in the loop for using python to select different column

我想知道如何为 in Python 3 创建一个循环来增加 i、j、k ... 的值以用于特定应用程序。

我需要 select 不同的列,但它们不能 select 自己。假设我的数据框有 7 列。我将在下面举一个例子。

想法是创建一个 selection 这样的:

[0, 1]
[0, 2]
[0, 3]
[0, 4]
[0, 5]
[0, 6]
 ...
[0, 3, 6]
[0, 3, 7]
[0, 4, 5]
[0, 4, 6]
[0, 4, 7]
[0, 5, 6]
[0, 5, 7]
[0, 6, 7]
[0, 1, 2, 3]
[0, 1, 2, 4]
[0, 1, 2, 5]
[0, 1, 2, 6]
[0, 1, 2, 7]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 5]
[0, 1, 2, 3, 6]
[0, 1, 2, 3, 7]
 ...
[0, 1, 2, 3, 4, 7]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 7]
[0, 1, 2, 3, 4, 5, 8]
[0, 1, 2, 3, 4, 5, 6, 7]

经过一些回复,我可以创建以下代码:

from itertools import combinations 
numbers = [] 
A = [0,1,2,3,4,5,6,7] 
for i in range(8): 
   for combo in combinations(A, i+2): 
      numbrs.append(combo)

输出为:

[(0, 1),
 (0, 2),
 (0, 3),
 (0, 4), ...

如何使用这些数字作为 iloc 迭代器的索引?

例如,生成的数字必须替换代码:

df.iloc[:,[i, j, k, ...]]

那我就可以在栏目之间进行互动了

您可以使用 itertools.combinationsitertools.chain 解决此问题:

import itertools as it

list(it.chain(*(it.combinations(range(8), r) for r in range(2, 9))))

如果您愿意,也可以使用列表理解:

[x for r in range(2, 9) for x in it.combinations(range(8), r)] 

这会产生以下输出:

[(0, 1),
 (0, 2),
 (0, 3),
 (0, 4),
 (0, 5),
 (0, 6),
 (0, 7),
 (1, 2),
 (1, 3),
 (1, 4),
 (1, 5),
 (1, 6),
 (1, 7),
 (2, 3),
 (2, 4),
 (2, 5),
 (2, 6),
 (2, 7),
 (3, 4),
 (3, 5),
 (3, 6),
 (3, 7),
 (4, 5),
 (4, 6),
 (4, 7),
 (5, 6),
 (5, 7),
 (6, 7),
 (0, 1, 2),
 (0, 1, 3),
 (0, 1, 4),
 (0, 1, 5),
 (0, 1, 6),
 (0, 1, 7),
 (0, 2, 3),
 (0, 2, 4),
 (0, 2, 5),
 (0, 2, 6),
 (0, 2, 7),
 (0, 3, 4),
 (0, 3, 5),
 (0, 3, 6),
 (0, 3, 7),
 (0, 4, 5),
 (0, 4, 6),
 (0, 4, 7),
 (0, 5, 6),
 (0, 5, 7),
 (0, 6, 7),
 (1, 2, 3),
 (1, 2, 4),
 (1, 2, 5),
 (1, 2, 6),
 (1, 2, 7),
 (1, 3, 4),
 (1, 3, 5),
 (1, 3, 6),
 (1, 3, 7),
 (1, 4, 5),
 (1, 4, 6),
 (1, 4, 7),
 (1, 5, 6),
 (1, 5, 7),
 (1, 6, 7),
 (2, 3, 4),
 (2, 3, 5),
 (2, 3, 6),
 (2, 3, 7),
 (2, 4, 5),
 (2, 4, 6),
 (2, 4, 7),
 (2, 5, 6),
 (2, 5, 7),
 (2, 6, 7),
 (3, 4, 5),
 (3, 4, 6),
 (3, 4, 7),
 (3, 5, 6),
 (3, 5, 7),
 (3, 6, 7),
 (4, 5, 6),
 (4, 5, 7),
 (4, 6, 7),
 (5, 6, 7),
 (0, 1, 2, 3),
 (0, 1, 2, 4),
 (0, 1, 2, 5),
 (0, 1, 2, 6),
 (0, 1, 2, 7),
 (0, 1, 3, 4),
 (0, 1, 3, 5),
 (0, 1, 3, 6),
 (0, 1, 3, 7),
 (0, 1, 4, 5),
 (0, 1, 4, 6),
 (0, 1, 4, 7),
 (0, 1, 5, 6),
 (0, 1, 5, 7),
 (0, 1, 6, 7),
 (0, 2, 3, 4),
 (0, 2, 3, 5),
 (0, 2, 3, 6),
 (0, 2, 3, 7),
 (0, 2, 4, 5),
 (0, 2, 4, 6),
 (0, 2, 4, 7),
 (0, 2, 5, 6),
 (0, 2, 5, 7),
 (0, 2, 6, 7),
 (0, 3, 4, 5),
 (0, 3, 4, 6),
 (0, 3, 4, 7),
 (0, 3, 5, 6),
 (0, 3, 5, 7),
 (0, 3, 6, 7),
 (0, 4, 5, 6),
 (0, 4, 5, 7),
 (0, 4, 6, 7),
 (0, 5, 6, 7),
 (1, 2, 3, 4),
 (1, 2, 3, 5),
 (1, 2, 3, 6),
 (1, 2, 3, 7),
 (1, 2, 4, 5),
 (1, 2, 4, 6),
 (1, 2, 4, 7),
 (1, 2, 5, 6),
 (1, 2, 5, 7),
 (1, 2, 6, 7),
 (1, 3, 4, 5),
 (1, 3, 4, 6),
 (1, 3, 4, 7),
 (1, 3, 5, 6),
 (1, 3, 5, 7),
 (1, 3, 6, 7),
 (1, 4, 5, 6),
 (1, 4, 5, 7),
 (1, 4, 6, 7),
 (1, 5, 6, 7),
 (2, 3, 4, 5),
 (2, 3, 4, 6),
 (2, 3, 4, 7),
 (2, 3, 5, 6),
 (2, 3, 5, 7),
 (2, 3, 6, 7),
 (2, 4, 5, 6),
 (2, 4, 5, 7),
 (2, 4, 6, 7),
 (2, 5, 6, 7),
 (3, 4, 5, 6),
 (3, 4, 5, 7),
 (3, 4, 6, 7),
 (3, 5, 6, 7),
 (4, 5, 6, 7),
 (0, 1, 2, 3, 4),
 (0, 1, 2, 3, 5),
 (0, 1, 2, 3, 6),
 (0, 1, 2, 3, 7),
 (0, 1, 2, 4, 5),
 (0, 1, 2, 4, 6),
 (0, 1, 2, 4, 7),
 (0, 1, 2, 5, 6),
 (0, 1, 2, 5, 7),
 (0, 1, 2, 6, 7),
 (0, 1, 3, 4, 5),
 (0, 1, 3, 4, 6),
 (0, 1, 3, 4, 7),
 (0, 1, 3, 5, 6),
 (0, 1, 3, 5, 7),
 (0, 1, 3, 6, 7),
 (0, 1, 4, 5, 6),
 (0, 1, 4, 5, 7),
 (0, 1, 4, 6, 7),
 (0, 1, 5, 6, 7),
 (0, 2, 3, 4, 5),
 (0, 2, 3, 4, 6),
 (0, 2, 3, 4, 7),
 (0, 2, 3, 5, 6),
 (0, 2, 3, 5, 7),
 (0, 2, 3, 6, 7),
 (0, 2, 4, 5, 6),
 (0, 2, 4, 5, 7),
 (0, 2, 4, 6, 7),
 (0, 2, 5, 6, 7),
 (0, 3, 4, 5, 6),
 (0, 3, 4, 5, 7),
 (0, 3, 4, 6, 7),
 (0, 3, 5, 6, 7),
 (0, 4, 5, 6, 7),
 (1, 2, 3, 4, 5),
 (1, 2, 3, 4, 6),
 (1, 2, 3, 4, 7),
 (1, 2, 3, 5, 6),
 (1, 2, 3, 5, 7),
 (1, 2, 3, 6, 7),
 (1, 2, 4, 5, 6),
 (1, 2, 4, 5, 7),
 (1, 2, 4, 6, 7),
 (1, 2, 5, 6, 7),
 (1, 3, 4, 5, 6),
 (1, 3, 4, 5, 7),
 (1, 3, 4, 6, 7),
 (1, 3, 5, 6, 7),
 (1, 4, 5, 6, 7),
 (2, 3, 4, 5, 6),
 (2, 3, 4, 5, 7),
 (2, 3, 4, 6, 7),
 (2, 3, 5, 6, 7),
 (2, 4, 5, 6, 7),
 (3, 4, 5, 6, 7),
 (0, 1, 2, 3, 4, 5),
 (0, 1, 2, 3, 4, 6),
 (0, 1, 2, 3, 4, 7),
 (0, 1, 2, 3, 5, 6),
 (0, 1, 2, 3, 5, 7),
 (0, 1, 2, 3, 6, 7),
 (0, 1, 2, 4, 5, 6),
 (0, 1, 2, 4, 5, 7),
 (0, 1, 2, 4, 6, 7),
 (0, 1, 2, 5, 6, 7),
 (0, 1, 3, 4, 5, 6),
 (0, 1, 3, 4, 5, 7),
 (0, 1, 3, 4, 6, 7),
 (0, 1, 3, 5, 6, 7),
 (0, 1, 4, 5, 6, 7),
 (0, 2, 3, 4, 5, 6),
 (0, 2, 3, 4, 5, 7),
 (0, 2, 3, 4, 6, 7),
 (0, 2, 3, 5, 6, 7),
 (0, 2, 4, 5, 6, 7),
 (0, 3, 4, 5, 6, 7),
 (1, 2, 3, 4, 5, 6),
 (1, 2, 3, 4, 5, 7),
 (1, 2, 3, 4, 6, 7),
 (1, 2, 3, 5, 6, 7),
 (1, 2, 4, 5, 6, 7),
 (1, 3, 4, 5, 6, 7),
 (2, 3, 4, 5, 6, 7),
 (0, 1, 2, 3, 4, 5, 6),
 (0, 1, 2, 3, 4, 5, 7),
 (0, 1, 2, 3, 4, 6, 7),
 (0, 1, 2, 3, 5, 6, 7),
 (0, 1, 2, 4, 5, 6, 7),
 (0, 1, 3, 4, 5, 6, 7),
 (0, 2, 3, 4, 5, 6, 7),
 (1, 2, 3, 4, 5, 6, 7),
 (0, 1, 2, 3, 4, 5, 6, 7)]