所以 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(示例:(链接))。