对具有多个组的数据帧执行一次热编码

Performing one hot encoding on dataframe with multiple groups

我是 python 中数据集机器学习的新手,我正在尝试对以下数据帧执行一次热编码(仅显示一个片段)

id 国家 设备
100 新加坡 三星
100 频道 星系
200 ab pocophone
200 ee iphone 1
200 我的 iphone 2

我希望结果是这样的

id 新加坡 通道 ab ee 我的
100 1 1 0 0 0
200 0 0 1 1 1

希望得到任何建议和帮助,谢谢大家!

使用pd.crosstab:

>>> pd.crosstab(df['id'], df['country'])[df['country']
country  sg  ch  ab  ee  my
id
100       1   1   0   0   0
200       0   0   1   1   1