强迫熊猫将nan读成字符串

Jul*_*uly 5 python pandas

我找不到任何与我有关的问题.如果我错过了,请帮我一个链接...

我有一个看起来像这样的csv文件:

"concentration"
"5"
"5"
"5"
"5"
"5"

"nan"
"nan"
"nan"
"nan"
"nan"
Run Code Online (Sandbox Code Playgroud)

如果我用pandas read_csv读取它,"nan"值会自动解释为NaN.但我想把它们作为一个字符串.应该是NaN的缺失值在第7行(实际上没有写入任何内容).

我试着这样读:

df = pd.read_csv(path, dtype= {'concentration': 'string'}, quoting = csv.QUOTE_NONNUMERIC, sep=',')
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Rom*_*kar 5

看起来您可以使用keep_default_nana_values。从文档

na_values : list-like or dict, default None
Additional strings to recognize as NA/NaN. If dict passed, specific per-column NA values

keep_default_na : bool, default True
If na_values are specified and keep_default_na is False the default NaN values are overridden, otherwise they’re appended to
Run Code Online (Sandbox Code Playgroud)

所以这是代码

pd.read_csv('c:\\temp\\temp.txt', keep_default_na=False, na_values=[''])

   concentration
0              5
1              5
2              5
3              5
4              5
5            NaN
6            nan
7            nan
8            nan
9            nan
10           nan
Run Code Online (Sandbox Code Playgroud)