首页 > 解决方案 > 获取 TypeError:列表索引必须是整数或切片,而不是 str

问题描述

我在 python 方面很新,似乎无法让这段代码工作,得到一个“TypeError:列表索引必须是整数或切片,而不是 str”——请帮助!万分感谢

import pandas as pd 
from glob import glob
filenames = glob('abc*.xls')
df3 =[pd.read_excel(f) for f in filenames]
df4 = df3[df3['Unnamed: 11'].str.contains("tele", na=False)]

标签: pythonpandasglob

解决方案


df3list of DataFrames,因为由列表理解创建。

因此,如果可能,您可以将所有 DataFrame 连接在一起:

df3 =[pd.read_excel(f) for f in filenames]
df33 = pd.concat(df3, ignore_index=True)
df4 = df33[df33['Unnamed: 11'].str.contains("tele", na=False)]

另一个想法是分别处理每个 DataFrame:

for df in df3:
    df4 = df3[df3['Unnamed: 11'].str.contains("tele", na=False)]
    ...
    ...

推荐阅读