【问题标题】:All possible combinations of columns of a DataFrame - pandas / pythonDataFrame的所有可能的列组合 - pandas / python
【发布时间】:2012-07-11 05:58:35
【问题描述】:

给定一个包含多个列(可能的回归量)的 DataFrame,我如何生成所有可能的列组合以将它们测试为不同的回归?我正在尝试从所有可能的回归器组合中选择最佳回归模型。

例如,我有这个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

【问题讨论】:

    标签: python dataframe combinations pandas


    【解决方案1】:

    如果您正在寻找相互回归的列组合

    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))]
    

    【讨论】:

      【解决方案2】:

      尝试使用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')]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-06
        • 2019-02-13
        • 1970-01-01
        • 2011-12-16
        • 1970-01-01
        相关资源
        最近更新 更多