Я новичок в Python. У меня есть фреймворк со следующими столбцами: State, City, Lat и Long. Некоторые города не имеют значения ни лат, ни долготы, поэтому я хотел использовать среднее значение лат и долготы, чтобы заполнить эти нан. Я создал два столбца, которые показывают среднее значение этих двух полей в соответствии со штатом, в котором расположен город.
grouped_State = df.groupby(["State"])
long_State = grouped_partido["Long"].mean()
lat_State = grouped_State["Lat"].mean()
data = df["State"],df["Lat"],df["Long"]
headers = ['State', "Lat_city","Long_city"]
df_x = pd.concat(data, axis=1, keys=headers)
df_x = pd.merge( left = df_x, right = long_partido , how = "left",
left_on = "State", right_on = "State")
df_x = pd.merge( left = df_x, right = lat_partido , how = "left",
left_on = "State", right_on = "State")
Результат будет примерно таким:
Index State Lat_city Long_city Lat Long
0 A -34 -56 -34.6 -56.1
1 B nan nan -33 -54.2
2 A nan nan -34.6 -56.1
3 B -35.3 -55.5 -33 -54.2
Результат Я пытаюсь получить это примерно так:
Index State Lat_city Long_city Lat Long
0 A -34 -56 -34.6 -56.1
1 B -33 -54.2 -33 -54.2
2 A -34.6 -56.1 -34.6 -56.1
3 B -35.3 -55.5 -33 -54.2
Я пробовал использовать разные типы циклов и экспериментировал с лямбда-функциями, но ничего не работало должным образом.