我有一个类似的数据框:
IDs
Name
John 1,4,8
Eric 2,9,17
Paul 41,72,78,100
我需要从IDs
中获取每个组合并将其分配给新的原始组合,因此输出df应如下所示:
IDs
Name
John 1,4
John 1,8
John 4,8
Eric 2,9
Eric 2,17
Eric 9,17
Paul 41,72
Paul 41,78
Paul 41,100
Paul 72,78
Paul 72,100
Paul 78,100
我尝试了几种方法,但它们都没有开始接近我需要的东西。
答案 0 :(得分:2)
让我们使用来自itertools,combinations
,pd.Series
和stack
的{{1}}:
reset_index
输出:
from itertools import combinations
df.IDs.apply(lambda x:pd.Series(list(combinations(x.split(','),2))))\
.stack()\
.reset_index(level=1, drop=True)