另一个选择是使用
pandas.crosstab
res = (
pd.crosstab(index=df.id, columns=df.val)
.reset_index()
.rename_axis(columns=None)
)
输出:
>>> res
id admin fin_dep_ds local_usr
0 0 1 1 1
设置:
import pandas as pd
df = pd.DataFrame({
'id': [0, 0, 0],
'key':['role', 'role', 'role'],
'val': ['admin', 'local_usr', 'fin_dep_ds']
})