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

如何将指定格式字符串转换为Pandas DataFrame并得到3行结果?

解决方法

你的问题出在直接把字符串当作字典传入pd.DataFrame(),这样只会生成以整个字符串为列名的单行空数据。要得到3行的DataFrame,需要先把字符串转换成合法的Python字典,再传入DataFrame构造函数。

推荐方案:用ast.literal_eval安全解析字符串

ast.literal_eval可以安全地将字符串形式的Python数据结构转换成实际对象,比直接用eval更安全,避免代码注入风险。

修正后的代码:

import pandas as pd
import ast

sample = "'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]"

# 给字符串添加外层大括号,使其符合字典格式
dict_str = f"{{{sample}}}"
# 解析字符串为字典
data_dict = ast.literal_eval(dict_str)
# 生成DataFrame
df = pd.DataFrame(data_dict)

df.to_excel("output.xlsx", index=False)

效果说明

运行后生成的DataFrame会有3行,列名分别为A、B、C,对应的数据如下:

ABC
147
258
369

原代码问题解析

原代码中的pd.DataFrame({sample})实际上创建了一个以整个sample字符串为键的字典(类似{"'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]": None}),Pandas会把这个键作为列名,生成一行空数据,这和你想要的结果完全不符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:31:03