pivot_table
pivot_table
работает здесь хорошо и должно быть быстрым:
df.pivot_table(
index=['Record ID', 'Para'], columns='Tag', aggfunc='size', fill_value=0
).add_prefix('Tag_').reset_index()
Tag Record ID Para Tag_x Tag_y Tag_z
0 1 A 1 1 1
1 2 B 1 1 0
crosstab
pd.crosstab(
[df['Record ID'], df['Para']], df['Tag']
).add_prefix('Tag_').reset_index()
Tag Record ID Para Tag_x Tag_y Tag_z
0 1 A 1 1 1
1 2 B 1 1 0