Я не могу получить пропущенные значения для правильной интерполяции, когда использую функцию группировки.
Вот краткий пример того, что я пробовал:
import pandas as pd
import numpy as np
# Create data
state = pd.Series(['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'])
population = pd.Series([100, 150, np.nan, np.nan, 50, 125, np.nan, np.nan])
year = [2016, 2017, 2018, 2019, 2016, 2017, 2018, 2019]
dict = {'state': state, 'population': population, 'year': year}
df = pd.DataFrame(dict)
# Interpolate population, grouped by states
df.groupby('state').apply(lambda x: x.interpolate(method='linear'))
state population year
0 A 100.0 2016
1 A 150.0 2017
2 A 150.0 2018
3 A 150.0 2019
4 B 50.0 2016
5 B 125.0 2017
6 B 125.0 2018
7 B 125.0 2019
Как вы заметили, при группировке по state
просто повторяется последнее значение.