列表索引必须是整数或切片而不是元组

时间:2018-01-07 07:38:57

标签: python csv

我正在尝试将我的数据重新组织为特定格式,并发现错误消息。

我正在查看一个16列的csv文件,我希望将第1-5列合并到一个列中,同时在其旁边附加第10列,同时丢弃剩余的列。

我有大约30个这样的csv文件,并希望将它们全部列入一个综合列表。文件名是迭代的,但它们可以由中间的数字定义。 Ptrain0dataset,Ptrain50dataset,Ptrain100dataset ......

这是我正在玩的代码:

clist=[]
for i in range(0,17):
    a=i*50
    with open('Ptrain' + str(a) + 'dataset,csv', 'r') as f:
        temp=f.readlines()
        temp2=[]
        for i in temp:
            j=i.replace('""', '')
            temp2.append(j.split(','))
        for j in temp2:
                clist[str(a), j[0:5], j[9]]
        f.close()

堆栈跟踪:

 File "<ipython-input-23-e7da8e2724f8>", line 1, in <module>
    runfile('pfiles')

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "pfiles/aa.py", line 35, in <module>
    clist[str(a), j[0:5], j[9]]

我似乎无法弄清楚这里的错误是什么。

1 个答案:

答案 0 :(得分:0)

错误在于这一行:

clist[str(a), j[0:5], j[9]]

您正在使用元组索引list,而不是整数。