Использование примера кадра данных:
df = pd.DataFrame([[0, 1, 2], [3, 4, 5], [6, 7, 8]], columns=[1, 2, 3])
Предоставление:
1 2 3
0 0 1 2
1 3 4 5
2 6 7 8
Следующий код должен достичь того, что вы хотите.Обратите внимание, что я использую .loc
здесь, а не .iloc
, поскольку я указываю столбец имена , а не индексы .Если вы хотите указать индексы, используйте .iloc
.
import itertools
#Initial list
lst = [1, 2, 3]
#Assemble all combinations
combs = [list(x) for i in range(1,4) for x in itertools.combinations(lst, i)]
#Use .loc
for comb in combs: #For each combination
temp_df = df.loc[:,comb]
print(temp_df)
Выход:
1
0 0
1 3
2 6
2
0 1
1 4
2 7
3
0 2
1 5
2 8
1 2
0 0 1
1 3 4
2 6 7
1 3
0 0 2
1 3 5
2 6 8
2 3
0 1 2
1 4 5
2 7 8
1 2 3
0 0 1 2
1 3 4 5
2 6 7 8