熊猫系列分裂然后崩溃

时间:2019-04-30 13:21:41

标签: 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

4 个答案:

答案 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.splitDataFrame.stackDataFrame.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