0

我正在尝试运行 RNA 速度分析并正在使用我的 Seurat 元数据。我正在尝试遵循本教程并拥有以下单元格 ID 数据集:

单元格 ID:标记为 x、y、z 的列

我想根据字符串包含的内容从 z 列中选择单元格 ID:

cellID_obs_WT3 = cellID_obs[cellID_obs[z].str.contains("221929_WT3:")]
cellID_obs_WT4 = cellID_obs[cellID_obs[z].str.contains("222863_WT4:")]
cellID_obs_KO4 = cellID_obs[cellID_obs[z].str.contains("222862_KO4:")]
cellID_obs_KO5 = cellID_obs[cellID_obs[z].str.contains("222864_KO5:")]

当我尝试上面的代码时,我不断收到错误

NameError                                 Traceback (most recent call last)
/tmp/ipykernel_2963/94098105.py in <module>
----> 1 cellID_obs[z]

NameError: name 'z' is not defined

在 z 周围添加引号会选择整个数据集。有人知道该怎么做吗?

4

2 回答 2

0

如果您仍在寻找答案,我会尝试打印 cellID_obs.columns 以找到您可以选择的列 ID。如果您不小心进行了多索引或类似的事情,它可能会提供信息。然后,您可以将它为 z 显示的任何值复制到上面的变量 z 中。除此之外,我认为您的语法没有任何问题。

于 2021-08-23T20:52:48.407 回答
0

抛出错误“name 'z' is not defined”,因为您尝试访问名为 z 的变量,该变量不存在。您想要的是访问名为 z 的列,因此引号是必需的。在 pandas 中,通常可以通过 dataFrame["nameOfColumn"] 或 dataFrame.nameOfColumn 访问列。在您的情况下,这将是 cellID_obs["z"] 或 cellID_obs.z

经过简短的测试后,查询的其余部分应该可以正常工作。我不完全确定,您所说的“正在选择整个数据集”

于 2021-08-16T09:52:16.003 回答