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