You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字典列表正确转换为无换行的Pandas DataFrame

字典列表转Pandas DataFrame并解决单元格换行问题

一、整理原始数据,合并为患者级字典

原始数据中每个字段单独存储为一个字典,每9个字典对应一位患者的完整信息。首先需要将这些零散字典合并为每个患者的完整字典:

import pandas as pd

# 修正语法错误后的原始数据
raw_data = [
    {'SET_ID_PATIENT_ID': '1'}, {'PATIENT_ID_EXTERNAL_ID': '53203'}, {'PATIENT_ID_INTERNAL_ID': 'SUF5120411SC'},
    {'PATIENT_NAME': 'SCOTT^HAROLD'}, {'DATE_OF_BIRTH': '19340410'}, {'SEX': 'M'},
    {'PATIENT_ADDRESS': '20 HURTIN BOULEVARD^^SMITHTOWN^NY^11787'}, {'PATIENT_ACCOUNT_NUMBER': '204028637190'}, {'SSN_NUMBER_PATIENT': '090280291'},
    {'SET_ID_PATIENT_ID': '1'}, {'PATIENT_ID_EXTERNAL_ID': '103308'}, {'PATIENT_ID_INTERNAL_ID': '97876400400'},
    {'PATIENT_NAME': 'WISNISKI^ROBERT'}, {'DATE_OF_BIRTH': '19900119'}, {'SEX': 'M'},
    {'PATIENT_ADDRESS': '3 PINEDALE RD^^HAUPPAUGE^NY^11788'}, {'PATIENT_ACCOUNT_NUMBER': '202728605261'}, {'SSN_NUMBER_PATIENT': '129761945'},
    {'SET_ID_PATIENT_ID': '1'}, {'PATIENT_ID_EXTERNAL_ID': '103308'}, {'PATIENT_ID_INTERNAL_ID': '97876400400'},
    {'PATIENT_NAME': 'WISNISKI^ROBERT'}, {'DATE_OF_BIRTH': '19900119'}, {'SEX': 'M'},
    {'PATIENT_ADDRESS': '3 PINEDALE RD^^HAUPPAUGE^NY^11788'}, {'PATIENT_ACCOUNT_NUMBER': '202728605260'}, {'SSN_NUMBER_PATIENT': '129761945'}
]

# 按每9个字典为一组,合并成患者完整信息
patients = []
for i in range(0, len(raw_data), 9):
    patient_info = {}
    for item in raw_data[i:i+9]:
        patient_info.update(item)
    patients.append(patient_info)

# 转换为DataFrame
df = pd.DataFrame(patients)

二、解决单元格换行问题

DataFrame显示换行通常是Pandas自动换行设置或内容特殊字符导致,可通过以下方式处理:

1. 修改Pandas全局显示设置

强制关闭自动换行,让单元格内容完整显示:

# 设置最大列宽为无限制,禁止自动换行
pd.set_option('display.max_colwidth', None)
# 禁止DataFrame自动换行显示
pd.set_option('display.expand_frame_repr', False)

# 查看处理后的结果
print(df)

2. 替换内容中的特殊分隔符

如果是原始数据中的^符号导致显示异常,可替换为常规分隔符:

# 替换姓名中的^为空格
df['PATIENT_NAME'] = df['PATIENT_NAME'].str.replace('^', ' ', regex=False)
# 替换地址中的^^为逗号
df['PATIENT_ADDRESS'] = df['PATIENT_ADDRESS'].str.replace('^^', ', ', regex=False)

3. Jupyter Notebook专属处理

如果在Jupyter环境中,可通过HTML样式强制取消换行:

from IPython.display import display, HTML
display(HTML(df.to_html().replace('<br>', '').replace('\n', '')))

内容的提问来源于stack exchange,提问作者Ateeb Shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:36:15