如何在pandas中将普通数据列转换为列表列?
错误原因
你原先使用的df['popular_tags'] = df['popular_tags'].to_list()逻辑是将整个popular_tags列的所有行值合并为一个大列表,再将该大列表逐行重复赋值回列,无法实现单行字符串转列表的需求。
解决方案
你当前每行内容是符合Python列表元素格式的逗号分隔字符串,推荐两种可靠实现方式:
方法1:使用ast.literal_eval(优先推荐)
该方法直接将符合Python字面量规则的字符串转换为对应数据类型,不需要手动处理分隔符和引号,容错率更高:
import ast df['popular_tags'] = df['popular_tags'].apply(ast.literal_eval)
方法2:使用str.split手动处理
如果你的字符串格式规则简单,也可以手动分割后清理多余符号:
# 先按逗号+可选空格分割,再逐个清理元素两端的单引号 df['popular_tags'] = df['popular_tags'].str.split(',\s*').apply(lambda x: [item.strip("'") for item in x])
验证转换结果
执行转换后可通过如下代码确认格式正确:
print(type(df.loc[0, 'popular_tags'])) # 预期输出:<class 'list'>
内容的提问来源于stack exchange,提问作者salix_august
相关产品推荐
相关产品推荐

