我今天发现一个很有意思的问题哈
import scanpy as sc
import numpy as npX = np.random.randn(10,3)
adata1 = sc.AnnData(X)
adata1.obs["sample"] ="H1"
print(adata1)X = np.random.randn(20,3)
adata2 = sc.AnnData(X)
adata2.obs["sample"] ="G2"
print(adata2)X = np.random.randn(20,3)
adata3= sc.AnnData(X)
adata3.obs["sample"] ="AA"
print(adata3)X = np.random.randn(30,3)
adata4= sc.AnnData(X)
adata4.obs["sample"] ="11"
print(adata4)ad = sc.AnnData.concatenate(*[adata1,adata2,adata3,adata4])
print(ad)
结果如下
我将4个adata进行合并,然后我想对这个结果进行重新split,然后要保证原来的顺序
如果使用value_counts()
可以看到这个结果是不对的,这个排序是根据每个category出现的频率排序的,正确的做法是使用unique()