Вы можете использовать следующий базовый синтаксис для заполнения отсутствующих значений в кадре данных pandas:
df['column_name'] = df['column_name']. interpolate ()
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: интерполяция пропущенных значений в Pandas
Предположим, у нас есть следующий кадр данных pandas, который показывает общий объем продаж магазина за 15 дней подряд:
import pandas as pd
import numpy as np
#create DataFrame
df = pd.DataFrame({'day': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
'sales': [3, 6, 8, 10, 14, 17, 20, np.nan, np.nan, np.nan,
np.nan, 35, 39, 44, 49]})
#view DataFrame
print(df)
day sales
0 1 3.0
1 2 6.0
2 3 8.0
3 4 10.0
4 5 14.0
5 6 17.0
6 7 20.0
7 8 NaN
8 9 NaN
9 10 NaN
10 11 NaN
11 12 35.0
12 13 39.0
13 14 44.0
14 15 49.0
Обратите внимание, что во фрейме данных отсутствуют данные о продажах за четыре дня.
Если мы создадим простую линейную диаграмму для визуализации продаж с течением времени, вот как это будет выглядеть:
#create line chart to visualize sales
df['sales'].plot()
Чтобы заполнить недостающие значения, мы можем использовать функцию interpolate() следующим образом:
#interpolate missing values in 'sales' column
df['sales'] = df['sales']. interpolate ()
#view DataFrame
print(df)
day sales
0 1 3.0
1 2 6.0
2 3 8.0
3 4 10.0
4 5 14.0
5 6 17.0
6 7 20.0
7 8 23.0
8 9 26.0
9 10 29.0
10 11 32.0
11 12 35.0
12 13 39.0
13 14 44.0
14 15 49.0
Обратите внимание, что каждое из отсутствующих значений было заменено.
Если мы создадим еще одну линейную диаграмму для визуализации обновленного фрейма данных, вот как она будет выглядеть:
#create line chart to visualize sales
df['sales'].plot()
Обратите внимание, что значения, выбранные функцией interpolate() , вполне соответствуют тренду в данных.
Примечание.Полную документацию по функции interpolate() можно найти здесь .
Дополнительные ресурсы
Следующие руководства предоставляют дополнительную информацию о том, как обрабатывать отсутствующие значения в pandas:
Как подсчитать пропущенные значения в Pandas
Как заменить значения NaN на строку в Pandas
Как заменить значения NaN на ноль в Pandas