пропущенное значение '-' при чтении файла netCDF - PullRequest
0 голосов
/ 28 августа 2018

при чтении файла NetCDF я сохраняю данные о толще воды в кадре данных, чтобы прочитать их снова. В кадре данных я придумываю пропущенные значения --, которые также могут быть известны как «маскированные» значения. Я попытался заменить их, используя filedata.replace('--','nan'), но он заменяет даже числа с плавающей запятой, и я получаю целый кадр данных с nan. Также pd.dropna () не работал. Как можно было бы избежать этих значений во время чтения netcdf или заменить их в кадре данных на nans, не влияя на числа с плавающей запятой? Вот примерная часть моего фрейма данных:

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 голосов
/ 29 августа 2018

Я нашел более практичным для моего собственного вопроса: использование df.mask работает потрясающе. Панды или NumPy знают как строку и по неизвестным причинам заменяют не только их, но и все на Nan. Я обнаружил, что это не строка типа '-', но я должен представить, что это замаскированное значение типа --, которое не является строкой. Затем следующая команда заменит их на nan:

df_m=df.mask(df=='--', other=nan)

смотрите здесь: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.mask.html

0 голосов
/ 28 августа 2018

Вы можете использовать numy 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
...