Заполните ячейки на основе значений в пандах - PullRequest
0 голосов
/ 05 февраля 2019

С учетом следующего кадра данных ...

Key ID  Type    Group1  Group2  Group3  Group4  Sex     Race
1   A1  Type 1     x       x       x      x     Male    White
2   A1  Type 2     x       x       x      x     
3   A2  Type 1                                  Male    Black
4   A2  Type 2                      
5   A3  Type 1     x       x       x      x     Female  White
6   A3  Type 2     x       x       x      x     
7   A3  Type 3     x       x       x      x     
8   A3  Type 4     x       x       x      x     

Как можно заполнить поля Sex и Race для всех строк на основе ID?

Key ID  Type    Group1  Group2  Group3  Group4  Sex     Race
1   A1  Type 1     x       x       x      x     Male    White
2   A1  Type 2     x       x       x      x     Male    White
3   A2  Type 1                                  Male    Black
4   A2  Type 2                                  Male    Black
5   A3  Type 1     x       x       x      x     Female  White
6   A3  Type 2     x       x       x      x     Female  White
7   A3  Type 3     x       x       x      x     Female  White
8   A3  Type 4     x       x       x      x     Female  White

Я знаю, что могу использовать что-то вроде df.loc[df['ID'] == A1, 'Sex'].iloc[0], чтобы получить Sex для определенного ID, но не уверен, как можно заполнить все пробелы для Sex, основываясь на Sex для каждого ID.

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете сгруппировать данные по id и ffill / bfill

df1.replace('', np.nan, inplace = True)
df1['Sex'] = df1.groupby('ID').Sex.apply(lambda x: x.ffill().bfill())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...