我的拆分系列如下:
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
答案 0 :(得分:3)
使用numpy.hstack
的另一种可能的解决方案:
sudo apt install nfs-kernel-server
[出]
import numpy as np
genes_stacked = pd.Series(np.hstack(genes.str.split(',')))
答案 1 :(得分:1)
将Series.str.split
与DataFrame.stack
和DataFrame.reset_index
结合使用:
s = genes.str.split(",", expand=True).stack().reset_index(drop=True)
或使用Series
构造函数进行扁平化的列表理解:
s = pd.Series([y for x in genes.str.split(",") for y in x])
或itertools.chain.from_iterable
:
from itertools import chain
s = pd.Series(list(chain.from_iterable(genes.str.split(","))))
答案 2 :(得分:1)
在pandas.Series
中将iterable
用作str.join
时,将使用values
。由于我们最终要拆分的是讨厌的逗号,因此我们可以先加入逗号。
','.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
genes = pd.Series(['A', 'B,C', 'D'])
答案 3 :(得分:1)
在sum
之后使用split
pd.Series(genes.str.split(",").sum())
Out[770]:
0 A
1 B
2 C
3 D
dtype: object