IIUC get_dummies
pd.get_dummies(df.set_index(['RecordID','Para']),prefix='',prefix_sep = '').sum(level=[0,1]).gt(0).astype(int)
Out[272]:
x y z a b c
RecordID Para
1 A 1 0 1 1 1 1
2 B 0 1 0 1 1 0
Обновление
pd.get_dummies(df.set_index(['RecordID','Para']),prefix='',prefix_sep = '').sum(level=[0,1]).gt(0).astype(int).replace(0,np.nan).groupby(level=0).ffill().fillna(0)
Out[292]:
x y z a b c
RecordID Para
1 A 1.0 0.0 1.0 1 1.0 1.0
2 B 0.0 1.0 0.0 1 1.0 0.0
1 C 1.0 0.0 1.0 1 1.0 1.0