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

如何用for循环将Excel各列保存为Python命名列表?

解决方案

不推荐直接创建以列名为名的变量

Python里变量名不能以数字开头(比如写1 = [1,2,3]会直接报语法错误),而且列数多的话,零散的变量根本不好管理。用字典存储是更规范、更实用的做法——字典的键对应列名,值对应处理后的列表,统一管理还方便调用。

修改后的代码

import pandas as pd  # 原代码漏了导入pandas,记得加上

file_path = 'SpreadsheetFilePath.xlsx'  
# 注意:原columns列表里有重复的"6",我改成了"16",如果是笔误就保留,不是的话改回去
columns = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18"]
    
all_data = pd.read_excel(file_path, sheet_name='Schedule')

# 初始化一个字典,用来存所有列的处理后数据
column_data = {}

for col_name in columns:
    # 读取列数据转列表,用pandas自带的方法过滤空值,比转字符串判断靠谱
    cleaned_list = [x for x in all_data[col_name].tolist() if pd.notna(x)]
    # 把处理好的列表存入字典,键就是列名
    column_data[col_name] = cleaned_list

# 调用示例:想拿列"1"的数据直接这样写
print(column_data["1"])

代码说明

  • 用pd.notna(x)判断空值比str(x) != 'nan'更准确,能避免一些特殊值误判的情况
  • 字典column_data可以统一管理所有列的数据,后续想调用哪一列,直接用column_data["列名"]就能获取,不用找零散的变量
  • 原代码里的columns列表有重复项,建议检查一下是不是输入错误

非要创建变量?(不推荐)

如果硬要生成对应列名的变量,虽然不建议,但可以用globals()函数实现,但数字开头的列名还是会报错,而且会让你的变量环境变得很乱,新手容易搞混:

for col_name in columns:
    cleaned_list = [x for x in all_data[col_name].tolist() if pd.notna(x)]
    # 把列表绑定到全局变量,变量名等于列名
    globals()[col_name] = cleaned_list

# 但列名是数字的话,比如"1",调用时写print(1)会直接报错,因为变量名不能是数字

所以还是字典的方案最稳妥,既符合Python编码规范,也适合新手维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:20:05