如何从Pandas DataFrame的列表字符串列提取值转为逗号分隔字符串
之前方案报错的核心原因是单元格内存储的是Python列表类型,并非包含[]的字符串,所以字符串相关的strip、replace方法都无法直接使用。
你可以按以下步骤实现需求:
完整实现代码
import pandas as pd # 第一步:清理列名,去除列名中的空格,比如将"TGR Grade"转为"TGRGrade" df.columns = df.columns.str.replace(r'\s+', '', regex=True) # 第二步:将所有列表类型的单元格值转换为逗号分隔的字符串 # map(str)是为了兼容列表中的数字类型元素,避免join时报错 df = df.apply(lambda col: col.apply(lambda x: ','.join(map(str, x)))) # 第三步:过滤掉原来全是空列表的无效行 df = df.replace('', pd.NA).dropna(how='all').reset_index(drop=True)
如果你只想处理指定的几列,避免影响其他非列表类型列,可以替换第二步的代码为:
# 指定要处理的列 target_cols = ['Distance', 'TGRGrade', 'TGR1'] df[target_cols] = df[target_cols].apply(lambda col: col.apply(lambda x: ','.join(map(str, x))))
运行后即可得到你需要的输出格式。
内容的提问来源于stack exchange,提问作者chuky pedro
相关产品推荐
相关产品推荐

