熊猫将'NA'转换为NaN

eri*_*mjl 12 python bioinformatics pandas

我刚刚在生物学研究中选择了Pandas来做一些数据分析工作.原来我正在分析的一种蛋白质被称为'NA'.

我有一个矩阵,在列标题上有成对的'HA,M1,M2,NA,NP ......',与"行标题"相同(对于可能读过这个的生物学家,我正在使用流感).

当我直接从CSV文件将数据导入Pandas时,它将"行标题"读作"HA,M1,M2 ...",然后NA读取为NaN.有没有办法阻止这个?列标题很好 - 'HA,M1,M2,NA,NP等......'

Dan*_*lan 13

以这种方式关闭NaN检测: pd.read_csv(filename, keep_default_na=False)

我最初建议na_filter=False,这可以完成工作.但是,如果我理解下面杰夫的评论,这是一个更清洁的解决方案.

例:

In [1]: pd.read_csv('test')
Out[1]:[4]: pd.read_csv('test', keep_default_na=False)
Out[4]:1   2
2   3
Run Code Online (Sandbox Code Playgroud)

  • FYI na_filter是一种不同类型的选项,用于完全"关闭"nan检测,而na_values允许检测新的/不同的值,并且使事情复杂化,keep_na_filter允许您不使用默认的na值......!也许在docs/cookbook中需要一个例子! (5认同)
  • 还要注意,关闭列的dtype中的nan检测结果(如果它说混合字符串/整数)是``object``,通常不是一件好事,你想尽可能转换为基类型为了效率 (3认同)

tec*_*ife 5

刚遇到这个问题——我为列指定了一个 str 转换器,所以我可以将 na 保留在其他地方: pd.read_csv(... , converters={ "file name": str, "company name": str})