【问题标题】:Getting a TypeError: list indices must be integers or slices, not str获取 TypeError:列表索引必须是整数或切片,而不是 str
【发布时间】:2020-08-09 15:41:11
【问题描述】:

我是 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)]

【问题讨论】:

  • 代码 df3['Unnamed: 11'].str.contains("tele", na=False) 将返回一个布尔系列,但 df3 作为一个列表需要整数索引

标签: python pandas glob


【解决方案1】:

这里的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)]
    ...
    ...

【讨论】:

    猜你喜欢
    • 2015-12-09
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    相关资源
    最近更新 更多