如何用Python将Excel单元格内重复标识数据转为逗号分隔值
Python实现Excel单元格内容展开为逗号分隔格式
问题场景
Excel单个单元格内容为 "ABCD x3 ABC, BAC x 3",需要转换为 "ABCD,ABCD,ABCD,ABC,BAC,BAC,BAC" 的逗号分隔格式。
解决方案代码
def expand_cell_content(input_str): # 按逗号分割并清理每个片段的首尾空格 segments = [seg.strip() for seg in input_str.split(',')] expanded_list = [] for seg in segments: if 'x' in seg: # 拆分文本与重复次数(仅拆分第一个"x") content, count_part = seg.split('x', 1) clean_content = content.strip() # 转换次数为整数,处理x前后的空格 try: repeat_count = int(count_part.strip()) expanded_list.extend([clean_content] * repeat_count) except ValueError: # 若次数无效,默认添加一次内容 expanded_list.append(clean_content) else: # 无重复标识,直接添加一次 expanded_list.append(seg) return ','.join(expanded_list) # 测试示例 sample_input = "ABCD x3 ABC, BAC x 3" output = expand_cell_content(sample_input) print(output) # 输出结果:ABCD,ABCD,ABCD,ABC,BAC,BAC,BAC
代码说明
- 分割与清理:用逗号分割原字符串,去除每个片段的首尾空格,处理类似
", BAC x 3"这类带前置空格的情况。 - 重复逻辑处理:
- 若片段包含
"x",拆分出待重复内容和次数,转换次数为整数后重复对应次数添加到结果列表。 - 若片段无
"x",直接将内容添加一次到列表。
- 若片段包含
- 异常处理:如果次数不是有效整数(比如
"ABCD xabc"),默认只添加一次内容,避免程序报错。 - 结果合并:将结果列表用逗号连接成最终字符串。
内容的提问来源于stack exchange,提问作者Zeeshan Mughal
相关产品推荐
相关产品推荐

