将itertools.combinbin与列一起使用

时间:2016-05-30 17:45:44

标签: python pandas combinations

我有一个包含3列的Dataframe df。 A,B和C

A B C
2 4 4
5 2 5
6 9 5 

我的目标是使用itertools.combinations查找所有非重复列对,并将第一列对放在一个DataFrame中,将第二列放在另一个DataFrame中。所以这一对都会给A:B,A:C,B:C。

因此第一个数据帧df1将具有这些列对中的第一个:

df=A A B
   2 4 4
   5 5 2
   6 5 9

和第二个df2:

   B C C
   4 4 4
   3 5 5
   9 5 5

我试图用像itertools这样的东西:

    for cola, colb in itertools.combinations(df, 2):
        df1[cola]=cola
        df2[colb]=colb

我知道这没有任何意义,但我可以将每个列更改为列表并迭代列表列表,然后将每个列附加到列表A和B,然后将该列表重新转换为Dataframe,但后来我错过了标题。我尝试将标题添加到列表中,但是当我尝试将其重新制作回DataFrame时,索引似乎已关闭,我似乎无法修复它。所以我只是想看看是否有办法用标题迭代整个列。

1 个答案:

答案 0 :(得分:0)

利用for函数分别对每个DataFrame中使用的列进行分组,然后使用zip构建新的DataFrame:

pandas.concat