Первая проблема заключается в том, что вам нужно указать разделитель, вторая проблема с replace
заключается в том, что он будет преобразован в float64
, поэтому использование replace(-999.999, 0)
не будет работать.
from io import StringIO
s = '''-120;-119.7;-119.4;-119.1;-118.8;-118.5;-118.2;-117.9
-999.999;-999.999;-999.999;20.1;1.2;89.5;-999
-999.999;-999.999;4.6;25.6;8.9;-999.999;-999.9
-999.999;-999.999;8.66;12.6;7.6;-999.999;13.98
-999.999;-999.999;9.12;6.98;0.6;45.3;12.4;-999
-999.999;-999.999;13.36;4.56;3.9;2.36;-999.999
-999.999;-999.999;-999.999;21;45.2;-999.999;-9'''
df = pd.read_csv(StringIO(s), sep=';')
df = df.replace(df.iloc[0,0], 0) # specify a cell with the value you want to replace
или выможно использовать float64
число:
df.replace(-999.9989999999999, 0)
-120 -119.7 -119.4 -119.1 -118.8 -118.5 -118.2 -117.9
0 0.0 0.0 0.00 20.10 1.2 89.50 -999.00 NaN
1 0.0 0.0 4.60 25.60 8.9 0.00 -999.90 NaN
2 0.0 0.0 8.66 12.60 7.6 0.00 13.98 NaN
3 0.0 0.0 9.12 6.98 0.6 45.30 12.40 -999.0
4 0.0 0.0 13.36 4.56 3.9 2.36 0.00 NaN
5 0.0 0.0 0.00 21.00 45.2 0.00 -9.00 NaN
. Для реального файла StringIO
будет заменен путем к файлу.
Первый столбец, как вы его называете, - это index
если вы не хотите его выводить просто df.to_csv('file.csv', index=False)