Вменение пропущенных значений для категорий в pandas на основе другого столбца - PullRequest
0 голосов
/ 21 января 2020

как заполнить нан значения в pandas кадре данных? мои данные как это

id       state     zone

xxx       AP        south

xxx       AP      

xxx       AP     

xxx       AP     

xxx     delhi    north

xxx     delhi    

xxx     delhi    

xxx     delhi    

xxx     delhi    

как заполнить пропущенное значение в столбце zone на основе столбца state, который, как мы уже знаем, AP принадлежит только south, как заполнить значения с помощью pandas

Ответы [ 2 ]

0 голосов
/ 21 января 2020
  • Сначала отсортируйте значения так, чтобы Nan был последним
  • Затем сгруппируйте по столбцам, которые я использовал (id,state), чтобы заполнить zone
df = pd.DataFrame(data={"id":["x","x","x","x"],
                   "state":["AP","Delhi","AP","Delhi"],
                   "zone":["sount","north",np.nan,np.nan]})

res = df.sort_values(['id','state','zone'])
res = df.groupby(['id','state'],as_index=False)['zone'].ffill()
print(res)
   id  state   zone
0  x     AP  sount
1  x  Delhi  north
2  x     AP  sount
3  x  Delhi  north
  • 2-й ответ, если вы хотите использовать только состояние в качестве группы
df['zone'] = df.groupby(['state'],as_index=False)['zone'].transform(lambda x:x.ffill())
print(df)
  id  state   zone
0  x     AP  sount
1  x  Delhi  north
2  x     AP  sount
3  x  Delhi  north
0 голосов
/ 21 января 2020

Я думаю, вам нужно:

df = df.sort_values(by="state").ffill()
print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...