所以 AnnData 的adata.obs
(或adata.var
)属性是pandas.DataFrame。所以你可以这样使用它们。
例如,假设adata.obs
包含有关标记为 和 的单元格AACT
的AACG
信息AACC
。还可以想象数据框包含年龄和组织的信息。数据框将包含 3 个索引对应于单元格的标签和两列对应于Age
和Tissue
。
adata.obs
Index Age Tissue
AACT 26 Lung
AACG 40 Lung
AACC 34 Lung
现在,就像您说的那样,如果您键入adata.obs['sex'] = 'female'
,它将sex
为数据帧的每个索引创建一个名为“female”的新列。
adata.obs
Index Age Tissue sex
AACT 26 Lung female
AACG 40 Lung female
AACC 34 Lung female
想象一下这个细胞实际上来自一个“男性”患者,你可以这样写AACC
:AACG
male_patients = ['AACC', 'AACG']
adata.obs.loc[male_patients, 'sex'] = 'male'
这将导致:
adata.obs
Index Age Tissue sex
AACT 26 Lung female
AACG 40 Lung male
AACC 34 Lung male
请注意,我已使用该.loc\[\]
属性通过索引名称 ( ['AACC', 'AACG']
) 和列名称 ( 'sex'
) 访问数据框的特定元素。
我建议您按照一些教程来学习如何使用 python pandas DataFrame(示例:(链接))。