Я работаю над набором данных, заполненным некоторыми ошибками.
В этом наборе данных есть много плохих значений, таких как 0xFFFF, которые я хотел бы очистить. Какой самый эффективный способ очистить этот набор данных и получить некоторые согласованные значения?
Я пробовал df = df.apply(lambda x: pd.to_numeric(x,errors = 'coerce'))
, но есть еще одна проблема, например, в январе 31 день, в феврале там 28, поэтому строка за 29/30/31 февраля уже заполнена 'NaN'.
Моя цель здесь - проверить, не является ли строка числом (например, 0XFFFF), и изменить это значение на что-то связное. (например, среднее значение из 2 последних значений и 2 следующих значений)
Очистить данные:
January February March April May june July August
0 -5 -7.0 -7 2.0 12 17 20 20
1 -6 -6.0 -8 3.0 14 16 20 19
2 -5 -5.0 -5 4.0 15 17 17 19
3 -3 -6.0 -3 6.0 16 14 18 18
4 -6 -8.0 -2 4.0 13 15 17 17
5 -11 -9.0 1 5.0 12 17 17 18
6 -6 5.0 2 4.0 8 17 16 16
7 -8 -11.0 1 6.0 7 15 17 17
8 -11 -12.0 1 7.0 6 14 17 15
9 -8 -9.0 2 7.0 5 Sun 15 14
10 -8 -6.0 1 8.0 5 14 15 14
11 -8 -5.0 3 8.0 6 13 16 15
12 -8 -4.0 5 9.0 8 11 16 15
13 -10 1.0 5 10.0 10 14 13 15
14 -10 3.0 7 8.0 12 15 14 48
15 -9 -9.0 0xFFFF 8.0 13 15 -6 18
16 -6 -6.0 2 9.0 14 15 15 19
17 -6 -6.0 -1 11.0 13 17 15 21
18 -4 -4.0 -2 10.0 15 16 15 24
19 -8 2.0 -1 11.0 15 19 17 21
20 -9 3.0 0 12.0 15 20 18 21
21 -14 1.0 1 9.0 18 19 19 26
22 -15 -3.0 2 7.0 18 20 0xFFFF 17
23 -17 -4.0 3 8.0 16 22 24 18
24 -19 -6.0 4 8.0 15 22 23 17
25 -23 -8.0 3 6.0 16 21 26 17
26 -8 -8.0 4 9.0 16 22 26 16
27 -9 -11.0 5 11.0 17 21 21 17
28 -5 NaN 5 14.0 16 21 22 17
29 -6 NaN 3 16.0 17 17 23 18
30 -7 NaN 3 NaN 17 NaN 21 17
Ожидаемый выходной сигнал после работы (NaN должен остаться, но все остальные должны измениться (не числовые значения)):
January February March April May june July August \
0 -5 -7.0 -7 2.0 12 17 20 20
1 -6 -6.0 -8 3.0 14 16 20 19
2 -5 -5.0 -5 4.0 15 17 17 19
3 -3 -6.0 -3 6.0 16 14 18 18
4 -6 -8.0 -2 4.0 13 15 17 17
5 -11 -9.0 1 5.0 12 17 17 18
6 -6 5.0 2 4.0 8 17 16 16
7 -8 -11.0 1 6.0 7 15 17 17
8 -11 -12.0 1 7.0 6 14 17 15
9 -8 -9.0 2 7.0 5 14 15 14
10 -8 -6.0 1 8.0 5 14 15 14
11 -8 -5.0 3 8.0 6 13 16 15
12 -8 -4.0 5 9.0 8 11 16 15
13 -10 1.0 5 10.0 10 14 13 15
14 -10 3.0 7 8.0 12 15 14 48
15 -9 -9.0 4.5 8.0 13 15 -6 18
16 -6 -6.0 2 9.0 14 15 15 19
17 -6 -6.0 -1 11.0 13 17 15 21
18 -4 -4.0 -2 10.0 15 16 15 24
19 -8 2.0 -1 11.0 15 19 17 21
20 -9 3.0 0 12.0 15 20 18 21
21 -14 1.0 1 9.0 18 19 19 26
22 -15 -3.0 2 7.0 18 20 19 17
23 -17 -4.0 3 8.0 16 22 24 18
24 -19 -6.0 4 8.0 15 22 23 17
25 -23 -8.0 3 6.0 16 21 26 17
26 -8 -8.0 4 9.0 16 22 26 16
27 -9 -11.0 5 11.0 17 21 21 17
28 -5 NaN 5 14.0 16 21 22 17
29 -6 NaN 3 16.0 17 17 23 18
30 -7 NaN 3 NaN 17 NaN 21 17
Спасибо!