背景
- 数値の CSV データに
nan
とか#NAN
とかあってつらい - 数値専用の CSV パーサーを書いているが, https://github.com/lighttransport/nanocsv nan, inf あたりどう扱うのが正しい(推奨)のか気になりました.
numpy savetxt
numpy.nan, numpy.inf
=> nan
, inf
で出力される.
pandas to_csv
pandas の場合は, nan は消されるっぽい(カラの値が出力)
C printf
C99 で nan, inf の表現が標準で規定されたっぽい?
musl の例
nan
, NAN
, inf
, INF
がある.
古い Visual Studio
VS2013 or earlier では, #NAN
などで表示される
まとめ
ナウでヤングな環境なら, nan
, inf
をパースできればよい.
(ただし, きちんとやるなら, 文字列の行なのか, 数値の行なのか判定する必要がある)
Windows で古いツールが出した CSV だと#NAN
とかが出るので, これを扱いたい場合は別途パーサー側で対応が必要.