我有一个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可能很大,那么设置它的最佳方法是什么。
非常感谢
答案 0 :(得分:0)
这会创建一个列表,可用于过滤df:
for e in adjusted_powerset(mylist):
e = list(e)
xlist.append(e)