Python如何处理Notebook内多行注释CSV片段并提取item code
解决方案
最高效的处理方式是直接将Notebook内的注释数据转为多行字符串变量,用io.StringIO模拟成文件对象,直接喂给pandas的read_csv解析,全程不需要写入本地文件,也不需要复杂的手动拆分。
完整代码示例
import pandas as pd from io import StringIO # 直接复制Notebook里的整段数据,用三引号包裹为多行字符串 raw_data = """ # row # id, item code, account, period, location # 1: idswam1, 754527542, a396, 3, IR # 2: cbskuf5, 986435614, a952, 9, CH """ # 简单预处理:去除每行开头的#、行号前缀和多余空白 processed_data = '\n'.join( [line.lstrip('# ').split(':', 1)[-1].lstrip() for line in raw_data.splitlines() if line.strip()] ) # 直接用read_csv读取模拟的文件对象 df = pd.read_csv( StringIO(processed_data), sep=',\s*', # 兼容逗号后任意数量的空白符 engine='python' ) # 提取item code列表 item_codes = df['item code'].tolist()
疑问解答
1. 关于多行字符串与变量存储
这部分数据属于标准的多行字符串,不需要把每一行单独保存到不同变量中。直接用Python三引号('''/""")包裹整段内容即可,Python会自动保留原始换行和文本格式,后续解析直接操作这一个字符串变量就行,拆分到多个变量只会增加冗余工作量。
2. 关于数据格式选择
该数据本质还是逗号分隔格式,只是额外带了行首注释标记、行号和多余空白,不需要按其他格式处理。只要通过简单的字符串预处理或pandas读取参数配置,就能直接用read_csv解析,逻辑和读取本地CSV文件完全一致。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

