【发布时间】:2022-01-25 20:34:56
【问题描述】:
我正在处理一个包含基因名称和基因 ID 的数据集。基本上id是唯一定义的,一个名字可以对应多个id。
我使用一个列表来包含基因名称的所有 id,数据框如下所示:
|GeneName|GeneID|
|Name_1|[ID_1, ID_2, ID_5]|
|Name_2|[ID_3, ID_4]|
所有名称和 ID 都是字符串,但缺少一些 ID,我使用 NaN 表示缺失的 ID(也不确定这是否是一个好习惯)。
将数据框保存到 csv 文件并加载回来后,所有包含基因 ID 的列表都被视为字符串。我找到了一个解决方案:
pd.read_csv(fpath, converters={'GeneName': pd.eval, 'GeneID': pd.eval})
将它们加载为列表,但我遇到
pandas.core.computation.ops.UndefinedVariableError: name 'NaN' is not defined
处理这种情况的最佳解决方案是什么? 谢谢。
【问题讨论】:
-
你最终想要的输出是什么?一种热编码或二进制/十六进制编码是一种选择吗?
-
您可以使用空字符串来表示缺失的 id,即
'' -
好吧,我暂时只是想将数据框保存到 csv 文件中并能够将其加载回来。我找不到解决“NaN”错误的有效解决方案。
-
@MuhammadHassan 您好,我尝试使用
''替换NaN,但现在错误变为ValueError: expr cannot be an empty string。 -
尝试使用空数组,即
[]