在读取NetCDF文件时,我将水柱数据存储到数据框中以再次读取。在数据帧中,我想到了丢失的值--
,也可能称为“掩码”值。我尝试使用filedata.replace('--','nan')
替换它们,但它甚至替换了浮点数,并且得到了带有nan的整个数据框。另外pd.dropna()无效。
在读取netcdf时避免这些值或在数据帧中将其替换为nan而不影响浮点数的好方法是什么?这是我的数据框的示例部分:
so_1 so_2 so_3
-- -- --
-- -- --
-- -- --
-- -- --
31.99 32.09 32.22
-- -- --
-- -- --
-- -- --
-- -- --
32.08 32.15 32.18
32.0871 32.11 32.17
-- -- --
谢谢!
答案 0 :(得分:0)
您可以使用numpy NaN(您必须将numpy导入为np)
df.replace('--', np.nan)
Out[20]:
so_1 so_2 so_3
0 NaN NaN NaN
1 NaN NaN NaN
2 NaN NaN NaN
3 NaN NaN NaN
4 31.99 32.09 32.22
5 NaN NaN NaN
6 NaN NaN NaN
7 NaN NaN NaN
8 NaN NaN NaN
9 32.08 32.15 32.18
10 32.0871 32.11 32.17
11 NaN NaN NaN
答案 1 :(得分:0)
对于我自己的问题,我发现了一个更实用的方法:使用df.mask
很棒。 pandas或numpy知道'-'是一个字符串,由于未知原因,它们不仅替换了它们,还替换了所有nan。我发现它不是像'-'这样的字符串,但是我必须介绍一下它是一个像--
这样的掩码值,它不是字符串。然后,以下命令将其替换为nan:
df_m=df.mask(df=='--', other=nan)
在这里查看:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.mask.html