数据框

时间:2018-04-09 12:22:42

标签: python itertools

我有一个4列0,1,2,3的数据帧df。

我想通过powerset list(xlist)组合这些列:

mylist = (0,1,2,3)

xlist=[]
for e in adjusted_powerset(mylist):
    xlist.append(e)

xlist = [(0,1),(0,2),(1,2)...(0,1,2,3)]

使用来自powerset的列索引号创建数据帧df2作为df的子集。

然后我对df2进行计算,得到一些结果并通过循环重复。

我遇到的问题是如何使用xlist作为过滤器来索引df。

我的iloc如下:

for j in range(1,len(mylist)):
    df2 = df.iloc[:,[xlist[j][0],xlist[j][1]]]

xlist的列部分必须是动态的,因此当xlist行有2个值时,[xlist [j] [0],xlist [j] [1]]和[xlist [j] [0],xlist [j] [1],xlist [j] [2]]当它有3,依此类推至k(在本例中为4)。

我意识到这可能很简单,并准备好被嘲弄。是。加入前进的道路。假设k可能很大,那么设置它的最佳方法是什么。

非常感谢

1 个答案:

答案 0 :(得分:0)

这会创建一个列表,可用于过滤df:

for e in adjusted_powerset(mylist):
    e = list(e)    
    xlist.append(e)