Python中如何将DataFrame存储列表的列转换为逗号分隔字符串
解决步骤
由于当前year列为字符串格式的列表,需要先解析为真实Python列表,再做转换:
- 依赖导入
import pandas as pd from ast import literal_eval
- 将字符串形式的列表转为真实列表
df1['year'] = df1['year'].apply(literal_eval)
- 列表转逗号分隔字符串,空列表替换为
none
df1['year'] = df1['year'].apply(lambda x: ', '.join(map(str, x)) if x else 'none')
补充说明
- 用
literal_eval而非原生eval做解析,安全性更高,仅支持解析Python字面量结构,不会执行任意代码 - 代码中
if x的判断等价于判断列表非空,空列表会直接返回none,符合预期输出要求 - 如果不想额外导入
ast库,也可以用字符串处理直接转换,不过对列表字符串的格式要求更高:
df1['year'] = df1['year'].str.strip('[]').str.split(', ').apply(lambda x: ', '.join(i for i in x if i) if any(x) else 'none')
内容的提问来源于stack exchange,提问作者aristotle11
相关产品推荐
相关产品推荐

