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

将CSV文件转为Python字典时遇语法错误,请求帮助

解决CSV读取时的SyntaxError问题

错误根源

  • 变量名非法:Python变量名不能包含/、空格这类特殊字符,你写的P/E_Ratio、P/E/G_Ratio会被解析成运算符运算,直接触发SyntaxError: can't assign to operator
  • 列访问方式错误:当DataFrame的列名包含空格、/时,不能用.语法(比如data.P/ERatio),必须用方括号索引data["列名"]来访问

正确实现代码

1. 读取为单独列表

import pandas as pd

# 一次性读取整个CSV
data = pd.read_csv("Data.csv")

# 使用合法变量名 + 正确列索引方式
name_list = data["Name"].tolist()
pe_ratio_list = data["P/E Ratio"].tolist()
peg_ratio_list = data["P/E/G Ratio"].tolist()
eps_list = data["Earnings Per Share"].tolist()
beta_list = data["BETA"].tolist()
score_list = data["Score"].tolist()

# 测试输出
print(name_list)
print(pe_ratio_list)

2. 直接转换为Python字典(满足你最初的需求)

如果想把整个CSV转成字典,pandas自带方法可以直接实现:

import pandas as pd

data = pd.read_csv("Data.csv")
# 转成列表嵌套字典,每个元素对应一行数据
row_dict = data.to_dict("records")
# 转成列名为键、列数据列表为值的字典
column_dict = data.to_dict("list")

# 测试输出
print(column_dict["Name"])
print(column_dict["P/E Ratio"])

额外优化建议

  • 不要重复导入pandas:你的代码里同时用了import pandas as pd和from pandas import *,保留import pandas as pd即可,避免命名冲突
  • 循环读取单列的写法完全没必要,一次性读取整个CSV再处理效率更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:52:13