disndfn 2023-02-27 15:37 采纳率: 85.7%
浏览 11
已结题

关于#python#的问题,如何解决?

想用python将文件家里面的数据导入,但是遇到错误,请各位DS、LS指导一下:

TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_14760\1758730604.py in <module>
      2 for i in file_name_list:
      3         if i.endswith(".xlsx"):       #筛选只读取xlsx结尾的文件
----> 4             df.append(pd.read_excel((file_dir_list[i])))
      5 
      6 

TypeError: list indices must be integers or slices, not str

问题出在这里“pd.read_excel(file_dir_list[i])”

import pandas as pd
import os
from functools import reduce

#指定存放文件的地址
dir_str = r'E:\数据包\2021-2023全国各城市库存量\data_1'

 #返回.xlsx格式所有文件名的列表list
file_name_list = os.listdir(dir_str)

['export_0.xlsx', 'export_1.xlsx']

# for循环获取所有.xlsx格式文件的绝对地址的列表list
file_dir_list = [os.path.join(dir_str,x) for x in file_name_list]

['E:\\数据包\\2021-2023全国各城市库存量\\data_1\\export_0.xlsx', 'E:\\数据包\\2021-2023全国各城市库存量\\data_1\\export_1.xlsx', ]

df = []
for i in file_name_list:
        if i.endswith(".xlsx"):       #筛选只读取xlsx结尾的文件
            df.append(pd.read_excel(file_dir_list[i]))
  • 写回答

2条回答 默认 最新

  • 小小小小人水豚 2023-02-27 15:42
    关注

    第19行变量i,表示的是你变量出来的所有文件名,是字符串类型。不能当做列表的下标,修改后的代码:

    import pandas as pd
    import os
    from functools import reduce
     
    #指定存放文件的地址
    dir_str = r'E:\数据包\2021-2023全国各城市库存量\data_1'
     
     #返回.xlsx格式所有文件名的列表list
    file_name_list = os.listdir(dir_str)
     
    ['export_0.xlsx', 'export_1.xlsx']
     
    # for循环获取所有.xlsx格式文件的绝对地址的列表list
    file_dir_list = [os.path.join(dir_str,x) for x in file_name_list]
     
    ['E:\\数据包\\2021-2023全国各城市库存量\\data_1\\export_0.xlsx', 'E:\\数据包\\2021-2023全国各城市库存量\\data_1\\export_1.xlsx', ]
     
    df = []
    for idx, i in enumerate(file_name_list):
            if i.endswith(".xlsx"):       #筛选只读取xlsx结尾的文件
                df.append(pd.read_excel(file_dir_list[idx]))
    

    有帮助的话,请点采纳~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 已采纳回答 2月27日
  • 创建了问题 2月27日

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!