我现在有一个Dataframe
df = pd.DataFrame({'a':['A','A','A','A','B','B','B','C','C','C','D','D'],
'b':['a','b','c','d','a','b','c','a','b','c','a','d']}
我想要做到基于A列的,B列的元素两两组合
得到如下结果
我现在有一个Dataframe
df = pd.DataFrame({'a':['A','A','A','A','B','B','B','C','C','C','D','D'],
'b':['a','b','c','d','a','b','c','a','b','c','a','d']}
我想要做到基于A列的,B列的元素两两组合
得到如下结果
借助于itertools中的combination函数,获取a,b,c,d两两组合。然后转换一下就可以了。
import pandas as pd
from itertools import combinations
df = pd.DataFrame({'a':['A','A','A','A','B','B','B','C','C','C','D','D'],
'b':['a','b','c','d','a','b','c','a','b','c','a','d']})
a=list(combinations(['a','b','c','d'],2))*2
df.b=[x[0]+','+x[1] for x in a]
print(df)