Python 3.x 通过分隔多个字符串ID对所有ID组合进行分组

Python 3.x 通过分隔多个字符串ID对所有ID组合进行分组,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,现在我正在努力解决以下问题。我的数据帧中有两个不同的ID,前导ID和跟随ID(字符串)。前导ID由一个唯一的ID表示。但是,后继ID有三个不同的阶段:第一个ID可以由None分配,第二个ID可以由一个ID分配,第三个ID有多个ID,这些ID用逗号分隔。下表具体显示了结构: leading_ID follower_ID abcd None dfgh cvnr,eee,rrrr jrtz brtz vvvv tttt,dddd ww

现在我正在努力解决以下问题。我的数据帧中有两个不同的ID,前导ID和跟随ID(字符串)。前导ID由一个唯一的ID表示。但是,后继ID有三个不同的阶段:第一个ID可以由None分配,第二个ID可以由一个ID分配,第三个ID有多个ID,这些ID用逗号分隔。下表具体显示了结构:

leading_ID   follower_ID
abcd         None
dfgh         cvnr,eee,rrrr
jrtz         brtz
vvvv         tttt,dddd
wwww         None
...          ...
我的目标是分离所有的跟随者ID,并将它们沿着引导者ID分组。因此,所有没有分配的跟随者ID都应该被删除

leading_ID   follower_ID
dfgh         cvnr
dfgh         eee
dfgh         rrrr
jrtz         brtz
vvvv         tttt
vvvv         dddd
...          ...
通过执行我的代码,它似乎永远不会结束,也不会花费很长时间

from  itertools import product
df1 = pd.DataFrame([j for i in df['follower_ID'].dropna().apply(lambda x: x.split(',')).values 
                      for j in product(*i)], columns=df.leading_ID)
中描述的方法不起作用。

使用:

from itertools import chain

#remove missing values
df = df.dropna()
#for better performance list comprehension with split
s = [x.split(', ') for x in df['follower_ID']]
#repeat values with flattening
df = pd.DataFrame({
     'user' : df['leading_ID'].repeat([len(x) for x in s]),
    'follower_ID' : list(chain.from_iterable(s))
})

print (df)
   user follower_ID
1  dfgh        cvnr
1  dfgh         eee
1  dfgh        rrrr
2  jrtz        brtz
3  vvvv        tttt
3  vvvv        dddd

这仍然是一个令人不安的问题。