This is quite the opposite of 让pandas.read_csv把空值读成空字符串而不是nan
Given the following CSV file:
col,val
there",1
\f\,3
"""hi""",5
我希望它能被解读为。
col val
0 hi\nthere 1
1 NaN 2
2 \f\ 3
3 4
4 "hi" 5
也就是说,将空字段(val 2)读为NaN
,而将空字符串(val 4)保持为空字符串。
目前,pd.read_csv
将值2和值4都转换为NaN
,或者如果我使用na_filter=False
,两者都被保留为空字符串。
我想这两种表示方法在CSV中的含义是不同的(空字段与空字符串),所以我想pandas也应该能够区分这一点。
有没有办法让pandas区分这两种情况?还是说我的假设是错误的,这两种表现形式实际上是一样的?(如果是第二种情况,请指给我一个CSV标准)。
更多信息,我通过导出BigQuery表(具有预期的含义,值2为空,值4为空字符串)到CSV中得到CSV。而我想得到完全相同的表。
因此,这个例子不仅仅是一个伪造的例子,而是BigQuery在导出到CSV时实际使用的。
编辑:进一步搜索发现了一个Github问题 4年之前讨论了类似的观点(见this comment例如),其中一位评论者提到有一些强迫现象(我不确定他们指的是什么,但我理解为空字段和空字符串之间的强迫现象)。这种情况还在发生吗?