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 我下载图形界面重启完就变成这样了,打字也打不了,动也动不了,该怎么解决(操作系统-centos)
  • ¥15 VBA中在窗体中遍历所有checkbox控件,提取出被选中的checkbox的caption值
  • ¥15 在Ubuntu上有什么命令,或者是系统文件能告诉我链接nvme ssd的pcie槽位是不是支持热插拔功能?
  • ¥15 ansys license许可证问题
  • ¥20 QQ号和密码都能正常登录微信 QQ号和密码登录微信显示密码错误
  • ¥15 qiankun主应用注册子应用提示跨域
  • ¥15 单片机RTOS Kernel与应用分离开发,Kernel如何调起应用?
  • ¥15 快手小店商家版APP怎么第三方APP跳转到指定用户聊天界面
  • ¥15 为什么AVL fire软件仿真时的步长改变了,仿真结果也会改变
  • ¥100 如何帮我写一个java小游戏