IIUC,
groupby
, transform
, fillna()
Сначала мы выбираем фрагмент нашего информационного кадра и используем fillna
, чтобы заполнить только пропущенные значения. Мы не хотим перезаписывать какие-либо из существующих данных.
затем мы используем функцию groupby
для группировки по почтовым индексам, как вы просили.
мы используем метод transform
, который возвращает ваши данныес его оригинальным индексом и длиной.
мы присваиваем это вашим столбцам и получаем результат, как показано ниже.
df[["Lat", "Long"]] = df[["Lat", "Long"]].fillna(
df.groupby("Postal Code")["Lat", "Long"].transform("mean"))
print(df)
Data Lat Long Postal Code
0 0 41.0 32.0 1556
1 1 32.0 31.0 1023
2 2 31.0 33.0 1023
3 3 31.5 32.0 1023
4 4 33.0 42.0 1775
5 5 40.0 44.0 1999