如何合并Pandas DataFrame中存储为字符串的列表列?
解决方案
要实现将A、B列的列表字符串合并为单个列表的字符串形式,需要先将字符串转回实际的列表对象,再合并列表,最后按需转回字符串格式,具体步骤如下:
步骤1:导入必要模块
使用ast模块的literal_eval方法,将字符串形式的列表解析为Python列表对象:
import ast
步骤2:解析字符串为列表并合并
方法一:逐行快速处理
通过apply遍历每一行,直接解析A、B列字符串为列表后合并,再转回字符串:
df['B'] = df.apply(lambda row: str(ast.literal_eval(row['A']) + ast.literal_eval(row['B'])), axis=1)
方法二:分步处理(更易读)
先将A、B列分别解析为列表,合并后再转回字符串格式:
# 将字符串列转为列表列 df['A_list'] = df['A'].apply(ast.literal_eval) df['B_list'] = df['B'].apply(ast.literal_eval) # 合并列表并转回字符串格式 df['B'] = (df['A_list'] + df['B_list']).astype(str) # 清理中间列(可选) df.drop(['A_list', 'B_list'], axis=1, inplace=True)
效果验证
执行上述代码后,df['B']的内容将变为:
0 ['ABCD', 'YUIO', 'DFGH'] 1 ['PQRS', 'QWERT', 'CVDF', 'WERT'] 2 ['LMNOP', 'BCLF', 'DASE', 'OPIU', 'RTYU'] Name: B, dtype: object
完全符合预期的合并结果。
内容的提问来源于stack exchange,提问作者user3046211
相关产品推荐
相关产品推荐

