如何基于含user与artist列的DataFrame生成单1值独热编码新表
实现方法
最直接的方案是使用pandas内置的get_dummies函数,完美匹配你的需求:
import pandas as pd # 基于原始DataFrame生成目标结果 result_df = pd.get_dummies(df, columns=['artist'])
细节说明:
- 该函数会自动将
artist列的每个唯一值转换为新的列 - 原始数据的每一行对应结果里的一行,仅当前记录对应的artist列值为1,其余artist列均为0
- 同一用户的多条记录会完整保留为结果中的多行,每行始终只有一个1值
如果需要去掉列名默认的artist_前缀(和你给出的预期示例格式完全一致),可以添加参数调整:
result_df = pd.get_dummies(df, columns=['artist'], prefix='')
内容的提问来源于stack exchange,提问作者Aztec22
相关产品推荐
相关产品推荐

