2012-07-11 8 views
2

여러 개의 열 (가능한 회귀 인자)을 포함하는 DataFrame이있는 경우 가능한 모든 열의 조합을 생성하여 여러 회귀로 테스트 할 수 있습니까? 회귀 변수의 가능한 모든 조합에서 최상의 회귀 모델을 선택하려고합니다.가능한 모든 조합의 DataFrame - pandas/python

예를 들어, 내가 가진이 DataFrame : 나는 다음과 같은 것들을 생성 할

  A B 
1/1/2011 1 4 
1/2/2011 2 5 
1/3/2011 3 6 

과 :

  A B 
1/1/2011 1 4 
1/2/2011 2 5 
1/3/2011 3 6 

      A 
1/1/2011 1 
1/2/2011 2 
1/3/2011 3 

      B 
1/1/2011 4 
1/2/2011 5 
1/3/2011 6 

답변

3

열 이름의 파워 셋 생성 itertools를 사용해보십시오 :

In [23]: import itertools as iter 

In [24]: def pset(lst): 
    ....:  comb = (iter.combinations(lst, l) for l in range(len(lst) + 1)) 
    ....:  return list(iter.chain.from_iterable(comb)) 
    ....: 


In [25]: pset(lst) 
Out[25]: 
[(), 
('A',), 
('B',), 
('C',), 
('D',), 
('A', 'B'), 
('A', 'C'), 
('A', 'D'), 
('B', 'C'), 
('B', 'D'), 
('C', 'D'), 
('A', 'B', 'C'), 
('A', 'B', 'D'), 
('A', 'C', 'D'), 
('B', 'C', 'D'), 
('A', 'B', 'C', 'D')] 
+0

대단히 감사합니다! – gustavopr

7

만약 당신이 칼럼의 조합을 찾고 있다면 ns 회귀에

df = DataFrame(numpy.random.randn(3,6), columns=['a','b','c','d','e','g']) 
df2 =[df[list(pair)] for pair in list(iter.combinations(df.columns, 2))]