如何将Pandas DataFrame中行内空格分隔列表转为逗号分隔列表?
解决方法
首先得明确你DataFrame里的目标数据类型,分两种常见情况处理:
情况1:数据是字符串格式的“伪列表”
如果该行的值是类似'["a" "b"]'的字符串(合法Python列表必须用逗号分隔,这种属于格式错误的字符串),可以先替换空格为逗号,再转成标准列表:
import pandas as pd import ast # 示例DataFrame df = pd.DataFrame({'target_col': ['["a" "b"]']}) # 替换空格为逗号,再转换为合法列表 df['target_col'] = df['target_col'].str.replace(' ', ', ', regex=False).apply(ast.literal_eval)
情况2:数据读取时格式异常
如果是读取外部数据导致列表格式错误(比如原数据里的列表未加逗号),可以先转为字符串处理,再转回列表:
df['target_col'] = df['target_col'].astype(str).str.replace(' ', ', ', regex=False).apply(ast.literal_eval)
额外需求:生成逗号分隔的字符串
如果只是需要得到"a, b"这样的逗号分隔字符串,处理完列表后可以用str.join:
df['comma_sep_str'] = df['target_col'].apply(lambda x: ', '.join(x))
内容的提问来源于stack exchange,提问作者Mahanchello
相关产品推荐
相关产品推荐

