Сначала заполнить пропущенные значения вперед на ffill
, а затем агрегировать join
:
c = ['Error Code ID', 'Error Code']
df[c] = df[c].ffill()
df = df.groupby(c).agg(' '.join).reset_index()
Если хотите удалить строки с пропущенными значениями в столбце Description of Error Code
, используйте:
df = df.dropna(subset=['Description of Error Code'])
c = ['Error Code ID', 'Error Code']
df[c] = df[c].ffill()
df = df.groupby(c).agg(' '.join).reset_index()
print (df)
Error Code ID Error Code \
0 OE_ATO_IN_OPEN 16169
1 STR_PRO_PARTIVIPANT_INVALID 16233
2 TRD_CONT_MOD_NOT_ALLOWED 16231
3 e$dup_request 16198
Description of Error Code
0 Order priced ATO cannot be entered when a secu...
1 Proprietary requests cannot be made
2 Continuous session trades
3 Duplicate modification or cancellation request...