读取netCDF文件时缺少值'-'

时间:2018-08-28 10:00:36

标签: python pandas missing-data netcdf4

在读取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
--  --  --

谢谢!

2 个答案:

答案 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