Python 熊猫转换';NA';杜楠
我只是为了在我的生物学研究中做一些数据分析工作而挑选了熊猫。我正在分析的一种蛋白质叫做“NA” 我有一个矩阵,列标题上两两写着‘HA,M1,M2,NA,NP…’,与“行标题”相同(对于可能阅读本文的生物学家,我正在研究流感)Python 熊猫转换';NA';杜楠,python,pandas,bioinformatics,Python,Pandas,Bioinformatics,我只是为了在我的生物学研究中做一些数据分析工作而挑选了熊猫。我正在分析的一种蛋白质叫做“NA” 我有一个矩阵,列标题上两两写着‘HA,M1,M2,NA,NP…’,与“行标题”相同(对于可能阅读本文的生物学家,我正在研究流感) 当我直接从CSV文件将数据导入Pandas时,它将“行标题”读取为“HA,M1,M2…”,然后将NA读取为NaN。有没有办法阻止这一切?列标题很好-“HA、M1、M2、NA、NP等…”。通过以下方式关闭NaN检测:pd.read\u csv(filename,keep\u
当我直接从CSV文件将数据导入Pandas时,它将“行标题”读取为“HA,M1,M2…”,然后将NA读取为NaN。有没有办法阻止这一切?列标题很好-“HA、M1、M2、NA、NP等…”。通过以下方式关闭NaN检测:
pd.read\u csv(filename,keep\u default\u 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
刚刚遇到了这个问题--我为列指定了一个str转换器,因此可以将na保留在其他位置:
pd.read\u csv(…,converters={“file name”:str,“company name”:str})
也许也值得一提na\u值
:)是的。说到这里,我觉得奇怪的是,在这种情况下,na_values=None
(默认值)和na_values=[]
都不抑制NaN检测。仅供参考,na_过滤器是一种不同类型的选项,旨在完全“关闭”NaN检测,而na_值允许检测新的/不同的值,并使事情复杂化,keep_na_过滤器允许您不使用默认na值。。。!可能需要文档/食谱中的示例!还要注意的是,关闭nan检测将导致列的数据类型(如果它说有混合字符串/整数)成为对象
,这通常不是一件好事,您确实希望尽可能地转换为基类型以提高效率Jeff,保留na_过滤器
是一件事吗?我在read_csv文档中找不到,但我想我知道你的意思。如果我修改后的答案不是最佳答案,我将很乐意接受编辑。谢谢。对于愚蠢的黑客解决方案,您可以在csv中进行搜索/替换,并将NA
重命名为类似NA\u-safe
的内容。这将有助于避免在某个特定列中从NA改为nan。