如何在循环中增加 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.combinations
和 itertools.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)]
我想知道如何为 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.combinations
和 itertools.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)]