使用glob获取Excel文件列表,保存指定工作表为命名DataFrame时遇类型错误
解决TypeError: unhashable type: 'list'错误
错误根源在于你把字典的键定义成了列表类型:df_name = ['Week ' + week]。Python字典的键必须是可哈希的不可变类型(比如字符串、整数),而列表是可变类型,无法作为字典键,因此触发了该错误。
修正方法很简单,把df_name改成字符串即可,去掉包裹的方括号:
import re import pandas as pd data = {} for f in files: week = re.sub('\D', '', f[68:79]) df_name = 'Week ' + week # 改为字符串类型 data[df_name] = pd.read_excel(f, 'Sheet1')
修正后,字典data的键会是类似"Week 001"的字符串,对应的值就是每个Excel文件中Sheet1的DataFrame,后续可以通过data["Week XXX"]直接访问对应的表格数据。
内容的提问来源于stack exchange,提问作者user15404111
相关产品推荐
相关产品推荐

