數據集示例列:[「A」,「B」,「C」,「D」,「num1」,「num2」]。所以我有6列 - 前4個分組和前2個是數字,手段將根據groupBy語句進行計算。 我想組合所有可能的4個分組列的組合。 我希望避免顯式鍵入groupBy [「A」,「B」,「C」,「D」],然後groupBy [「A」,「B」,「D」,「C」]等所有可能的groupBy 。 我是Python新手 - 在python中,我怎樣才能在一個循環中自動化分組,以便它對所有可能的組合進行groupBy calc計算 - 在這種情況下,4 * 3 * 2 * 1 = 24個組合? Ta。GroupBy所有可能的排列組合
感謝您的幫助。任何想法爲什麼'a ='部分不起作用?
import itertools
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,10,size=(100, 5)), columns=list('ABCDE'))
group_by_vars = list(df.columns)[0:4]
perms = [perm for perm in itertools.permutations(group_by_vars)]
print list(itertools.combinations(group_by_vars,2))
a = [x for x in itertools.combinations(group_by_vars,group_by_n+1) for group_by_n in range(len(group_by_vars))]
a沒有錯誤我只是得到一個空的對象。爲什麼??? 類似[comb for itertools.combinations(group_by_vars,2)]中的內容很容易,但如何在range(len(group_by_vars))中爲group_by_n得到a = [x for itertools.combinations(group_by_vars,group_by_n + 1) )] ??
沒錯的列表。真相被告知,我希望從這4個組中的所有2個和3個變量排列組,然後由4個組組成。我只是不想將所有這些細節添加到問題的基礎上,因爲它比任何東西都更容易填充。真相被告知我只是想知道什麼時候我說了10個變量 - 我會比自動更快地自動執行groupBy。也許我應該更清楚一點,所以我爲此道歉。你的觀點很棒。亮點是我們忽略了這些分組的順序,我相信未來的讀者會很欣賞。 – jc52766