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

如何将预处理后的final列表更新至df_dict并转为Pandas DataFrame?

问题分析与解决方案

你的代码存在几处语法错误和逻辑缺失,导致无法得到期望的输出。以下是修正后的完整代码及关键改进说明:

修正后的完整代码

import pandas as pd

# 修复字典语法错误,添加闭合括号
data = {'id':  ['001', '002', '003'],
        'address': ["William J. Clare\\n290 Valley Dr.\\nCasper, WY 82604\\nUSA",
                    "1180 Shelard Tower\\nMinneapolis, MN 55426\\nUSA",
                    "William N. Barnard\\n145 S. Durbin\\nCasper, WY 82601\\nUSA"]}

# 初始化DataFrame
df = pd.DataFrame(data)
df_dict = df.to_dict('records')

for row in df_dict:
    add = row["address"]
    # 简化切片逻辑:直接取拆分后的最后3个部分,兼容所有长度情况
    target_parts = add.split("\\n")[-3:]
    row['address'] = '\\n'.join(target_parts)

# 转换为最终DataFrame并调整id格式
final_df = pd.DataFrame(df_dict)
final_df['id'] = final_df['id'].astype(int)

print(final_df)

关键改进点

  • 修复语法错误:给data字典添加了缺失的闭合},解决了初始语法报错问题
  • 补全初始化步骤:新增df = pd.DataFrame(data),正确创建初始DataFrame,避免df未定义的报错
  • 简化地址处理逻辑:用add.split("\\n")[-3:]替代冗余的if-else判断,无论原地址拆分后长度是否大于3,都能直接取最后3部分,逻辑更简洁高效
  • 直接更新字典数据:循环中直接修改row['address'],无需单独维护final列表后批量更新,代码更直观
  • 补全最终转换步骤:将更新后的df_dict转换为DataFrame,并可选将id转为整数类型,匹配你期望的输出格式

输出结果

id                                        address
0    1          290 Valley Dr.\nCasper, WY 82604\nUSA
1    2  1180 Shelard Tower\nMinneapolis, MN 55426\nUSA
2    3            145 S. Durbin\nCasper, WY 82601\nUSA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:05:25