Pandas / Numpy - заполнить пропущенные значения в другой колонке - PullRequest
1 голос
/ 07 июля 2019

Добрый день, все, что у меня есть датафрейм

dataframe = df

NPI       Fa Name
1100      
1100      Johnson
1100  
5555 
2222      Meghan
2222    
4444
4444

Моя цель - заполнить недостающее имя FA для соответствующего NPI, если оно присутствует

    NPI       Fa Name
    1100      Johnson
    1100      Johnson
    1100      Johnson
    5555 
    2222      Meghan
    2222      Meghan
    4444
    4444

я знаю, что это может быть простой задачей, однако при программировании у меня возникают проблемы с ее выяснением.Пожалуйста помоги!

1 Ответ

2 голосов
/ 07 июля 2019

Используйте GroupBy.apply с пропуском значений при прямом и обратном заполнении, если важен порядок:

#if necessary
df['Fa Name'] = df['Fa Name'].replace('', np.nan)

df['Fa Name'] = df.groupby('NPI')['Fa Name'].apply(lambda x: x.ffill().bfill())
print (df)
    NPI  Fa Name
0  1100  Johnson
1  1100  Johnson
2  1100  Johnson
3  5555      NaN
4  2222   Meghan
5  2222   Meghan
6  4444      NaN
7  4444      NaN

Если нет, сначала выполните сортировку кулаком по обоим столбцам, а затем используйте GroupBy.ffill:

df = df.sort_values(['NPI','Fa Name'])

df['Fa Name'] = df.groupby('NPI')['Fa Name'].ffill()
print (df)
    NPI  Fa Name
1  1100  Johnson
0  1100  Johnson
2  1100  Johnson
4  2222   Meghan
5  2222   Meghan
6  4444      NaN
7  4444      NaN
3  5555      NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...