如何将含400篇论文信息的列表转换为Pandas DataFrame?
将自定义格式的论文列表转换为Pandas DataFrame
你可以通过数据清洗+逐块解析的方式把这些论文信息转换成Pandas DataFrame,具体步骤如下:
步骤1:完善数据读取与预处理
你现有的split("},")已经把每个论文块分开了,但需要清理每个块的冗余字符(比如开头的{、换行符、末尾的空格等),同时过滤掉空的块:
import pandas as pd # 读取并分割数据 with open('data.txt', 'r', encoding='utf-8') as my_file: raw_data = my_file.read() # 分割成单个论文块,清理空块 paper_blocks = [block.strip() for block in raw_data.split("},") if block.strip()]
步骤2:解析单个论文块为字典
每个论文块里的行都是key: value格式,我们需要把每行拆分成键值对,同时处理值的类型(字符串去掉引号,数字自动转换):
def parse_paper_block(block): paper_dict = {} # 按行分割,过滤空行 lines = [line.strip() for line in block.split('\n') if line.strip()] for line in lines: # 分割键和值,注意处理值里可能含有的冒号(比如fabric字段) key_part, value_part = line.split(':', 1) key = key_part.strip() value = value_part.strip() # 处理字符串类型(去掉首尾引号) if value.startswith(('"', "'")) and value.endswith(('"', "'")): value = value[1:-1].strip() # 尝试转换为数字(整数/浮点数) else: try: if '.' in value: value = float(value) else: value = int(value) except ValueError: # 转换失败就保留原字符串 pass paper_dict[key] = value return paper_dict
步骤3:批量解析并生成DataFrame
把所有论文块解析成字典列表,再直接转成DataFrame:
# 批量解析所有论文块 paper_dicts = [parse_paper_block(block) for block in paper_blocks] # 转换为DataFrame df = pd.DataFrame(paper_dicts) # 可选:重命名列名(按需调整) df = df.rename(columns={ 'title': 'Title', 'author': '作者', 'affiliation': '机构', 'year': '年份', 'publisher': '出版方', 'url': '链接', 'short': '会议缩写', 'fabric': '工艺', 'ee': '能效', 'benchmark': '基准测试' }) # 查看结果 print(df.head())
注意事项
- 如果数据里存在缺失字段,Pandas会自动填充
NaN,后续可通过df.fillna()统一处理。 - 针对
fabric这类值中包含冒号的字段,用split(':', 1)确保只分割第一个冒号,避免破坏字段值的完整性。
内容的提问来源于stack exchange,提问作者nechi
相关产品推荐
相关产品推荐

