Python 熊猫系列分裂然后崩溃

Python 熊猫系列分裂然后崩溃,python,pandas,Python,Pandas,我有一个拆分系列,如下所示: genes 0 A 1 B,C 2 D genes.str.split(",") 0 [A] 1 [B, C] 2 [D] 这是使用拆分创建的。然后我如何将其组合成一个单数序列 genes 0 A 1 B 2 C 3 D 与和一起使用: 或使用系列构造函数展开列表理解: s = pd.Series([y for x in genes.str.split(",") for y in x]) 或: 在str.j

我有一个拆分系列,如下所示:

genes
0    A
1    B,C
2    D
genes.str.split(",")
0   [A]
1   [B, C]
2   [D]
这是使用拆分创建的。然后我如何将其组合成一个单数序列

genes
0    A
1    B
2    C
3    D
与和一起使用:

或使用
系列
构造函数展开列表理解:

s = pd.Series([y for x in genes.str.split(",") for y in x])
或:


str.join
中将
pandas.Series
用作
iterable
时,将使用
值。因为我们最终要拆分的是那个讨厌的逗号,所以我们可以先用逗号连接

','.join(genes)

'A,B,C,D'
我们可以很容易地在这些逗号上拆分

','.join(genes).split(',')

['A', 'B', 'C', 'D']
然后将其转换为
pandas.Series

pd.Series(','.join(genes).split(','))

0    A
1    B
2    C
3    D
dtype: object

安装程序
另一种可能的解决方案是:

[外]


因此,在
split
之后使用
sum

pd.Series(genes.str.split(",").sum())
Out[770]: 
0    A
1    B
2    C
3    D
dtype: object

有点不相关,但是你知道如何首先创建基因数据框吗?当我做
df=pd.DataFrame({'genes':['A',['B','C'],'D']})
时,它会按预期在列表中给我B,C,但是我如何得到与OP的原始df类似的df,即不作为列表?@amanb-使用
pd.DataFrame({'genes':['A'],['B','C'],['D']})
好的,拆分后的版本会应用到OP的数据框架上。我希望在分裂前实现这一目标。不确定,如果有可能的话。
pd.Series(','.join(genes).split(','))

0    A
1    B
2    C
3    D
dtype: object
genes = pd.Series(['A', 'B,C', 'D'])
import numpy as np

genes_stacked = pd.Series(np.hstack(genes.str.split(',')))
print(genes_stacked)

0    A
1    B
2    C
3    D
pd.Series(genes.str.split(",").sum())
Out[770]: 
0    A
1    B
2    C
3    D
dtype: object