У меня есть Dataframe с указанием местоположения некоторых клиентов (поэтому у меня есть столбец с Customer_id и другие с Lat и Lon), и я пытаюсь интерполировать NaN в соответствии с каждым клиентом.
Например, если я интерполирую с ближайшим подходом здесь (я составил значения здесь):
Customer_id Lat Lon
A 1 1
A NaN NaN
A 2 2
B NaN NaN
B 4 4
Я бы хотел, чтобы NaN для B было 4, а не 2.
Я пробовал это
series.groupby('Customer_id').apply(lambda group: group.interpolate(method = 'nearest', limit_direction = 'both'))
И число NaN уменьшается с 9003 до 94. Но я не понимаю, почему оно все еще оставляет некоторые пропущенные значения.
Я проверил, и эти 94 пропущенных значения соответствуют записям от клиентов, которые уже были интерполированы.Например,
Customer_id Lat
0. A 1
1. A NaN
2. A NaN
3. A NaN
4. A NaN
Он будет корректно интерполироваться до некоторого значения (скажем, правильно интерполирует 1, 2 и 3), а затем оставляет 4 как NaN.
Я попытался установитьпредел в интерполяции больше, чем максимальное количество записей на клиента, но он все еще не работает.Я не знаю, где моя ошибка, может кто-нибудь помочь?
(Я не знаю, уместно ли упоминать или нет, но я изготовил для этого свой собственный NaN. Это код, который я использовал Заменить некоторые значения в кадре данных на NaN, если индекс строки не существует в другом кадре данных Я думаю, что проблема не в этом, но, поскольку я очень запутался, где проблема на самом деле, я будупросто оставь это здесь)