Python使用pandas将去撇号的拆分字符串导出为Excel多行数据
问题根源
- 字符串拆分逻辑错误:从Excel复制整列多行内容到输入框时,行与行之间的分隔符是换行符
\n,你用逗号拆分自然无法得到每行独立的列表元素。 - DataFrame构造逻辑错误:
MyStringSplit本身已经是存储每行内容的一维列表,你额外套了一层方括号,导致整个列表被识别为单个元素,导出后自然只有一行一个单元格。
修正后代码
# Apostrophe Remover import pandas as pd # 接收用户输入的Excel整列内容 MyString = str(input("Enter Text Here: ")) MySubstring = "'" # 清除撇号 if MySubstring in MyString: MyString = MyString.replace("'", "") print("\n处理后内容预览:\n", MyString) else: print("\nNo apostrophes found!") # 按换行符拆分得到每行内容的列表,兼容不同系统的换行格式 MyStringSplit = MyString.splitlines() # 可选步骤:过滤空行,避免复制时多带的空白内容导出后出现无效行 MyStringSplit = [line.strip() for line in MyStringSplit if line.strip()] # 构造DataFrame,直接传入拆分后的一维列表即可 data = {'ICD-10 Code & Description': MyStringSplit} df = pd.DataFrame(data, columns=['ICD-10 Code & Description']) # 导出到Excel df.to_excel(r'C:/Users/tjm4q2/Desktop/TM Thesis DX Codes Python Output.xlsx', index = False, header=True)
操作说明
运行代码后,直接选中Excel中需要处理的整列内容,按Ctrl+C复制,回到Python运行窗口的输入提示处按Ctrl+V粘贴,回车执行即可,导出的Excel会保留原有的11500行结构,所有撇号已清除。
内容的提问来源于stack exchange,提问作者TrevorM
相关产品推荐
相关产品推荐

