如何将DataFrame中的列表格式列拼接为指定格式的字符串列?
解决方法
你的代码报错是因为df['Name']是Pandas Series对象,不能直接调用字符串的split()方法,得对列里的每一个字符串单独处理。下面是两种可行的实现方式:
方法一:使用apply遍历处理每个元素
import pandas as pd # 构造你的DataFrame df = pd.DataFrame({ 'Name': ['A, B, C', 'D, E, F, G'], 'Group': ['P1', 'P2'] }) # 生成目标列 df['new'] = df['Name'].apply(lambda x: ' & '.join([f'name == {i.strip()}' for i in x.split(',')]))
方法二:用Pandas字符串方法链(更高效)
# 用正则拆分自动去掉逗号后的空格,无需额外strip() df['new'] = df['Name'].str.split(',\s*', expand=False) \ .apply(lambda lst: ' & '.join(f'name == {item}' for item in lst))
运行后得到的结果符合你的预期:
| Name | Group | new |
|---|---|---|
| A, B, C | P1 | name == A & name == B & name == C |
| D, E, F, G | P2 | name == D & name == E & name == F & name == G |
内容的提问来源于stack exchange,提问作者Olive
相关产品推荐
相关产品推荐

