我有一个包含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时,索引似乎已关闭,我似乎无法修复它。所以我只是想看看是否有办法用标题迭代整个列。
答案 0 :(得分:0)
利用for
函数分别对每个DataFrame中使用的列进行分组,然后使用zip
构建新的DataFrame:
pandas.concat