如果我使用Pandas read \u csv()函数,那么默认情况下,短行的元素映射到NaN。我想在将NA
解释为NaN
时抑制该映射。我最感兴趣的是由于传输问题而导致的文件截断,但是文件中间的短行应该具有相同的missing"
值。我试着在na_filter=False
和keep_default_na=False
之间捣乱,虽然它们似乎都将空单元格映射到空字符串,但都没有将字符串NA
映射到NaN
有没有办法吃我的蛋糕(NA
=>NaN
)并且也吃它(缺少未映射到NaN
的值)(我正在使用Pandas 0.22.0 w/ Python 3.6.
)
示例:
col1,col2,col3,col4
1,2,NA,4
4,5
12
假设文件已被截断,因此字符"12"
是文件中的最后一个字符(无EOF)。当na_filter
和keep_default_na
的默认值为True
时,结果值为
1,2,NaN,4
4,5,NaN,NaN
12,NaN,NaN,NaN
如果我设置为False
,我得到
1,2,NA,4
4,5,,
12,,,
我想找到一些方法从第一行的第三列中获取NaN
,而不必将缺少的值映射到NaN
默认情况下,Pandas将以下值解释为
NaN
(来自docs):为了避免
NA
被解析为空值,您需要设置keep_default_na=False
并直接指定na_values
为了解决第二个问题,为了避免在读取列数可变的文件时出错,需要指定列名称。综合起来:
编辑:看起来Pandas的最新版本现在可以读入列数可变的文件,而无需显式设置列名(例如,建议使用here)。因此,根据您的Pandas版本,您可能不需要
names
参数相关问题 更多 >
编程相关推荐