python - 无法删除表中的列
问题描述
初学者在这里。
在此处某人的帮助下,我能够提取此页面上的第二个和第三个表(团队统计和团队分析 5 对 5),其中包括最后一部分:
for each in comments:
if 'table' in str(each):
try:
tables.append(pd.read_html(each, header=1)[0])
tables = tables[tables['Rk'].ne('Rk')]
tables = tables.rename(columns={'Unnamed: 1':'Team'})
except:
for table in tables[1:3]:
print(table)
它们是标准数据框,但我只是不知道如何从中删除一些列。我试图通过使用 df.drop 来做到这一点:
for each in comments:
if 'table' in str(each):
try:
tables.append(pd.read_html(each, header=1)[0])
tables = tables[tables['Rk'].ne('Rk')]
tables = tables.rename(columns={'Unnamed: 1':'Team'})
except:
for table in tables[1:3]:
df = pd.read_table = [1]
df = df.drop({"AvAge", "GP", "W", "L", "OL", "PTS", "GF", "GA", "SOW", "SOL", "SOS", "PP", "PPO", "PP%", "PPA", "PPOA", "PK%", "SH", "SHA", "PIM/G", "oPIM/G", "S", "SA", "SO"}, 1)
print(df)
df = pd.read_table = [2]
df = df = df.drop({"S%", "SV%", "CF", "CA", "FF", "FA", "xGF", "xGA", "aGF", "aGA", "SCF", "SCA", "HDF", "HDA", "HDGF", "HDGA"}, 1)
print(df)
但我得到了这个答案:
AttributeError: 'list' 对象没有属性 'drop'
感觉使用“df”和“table”有问题,但我完全不确定。这就是我暂时卡住的地方。
提前谢谢!
解决方案
不,问题出在复合赋值语句上。
df = pd.read_table = [1]
print(df)
print(pd.read_table)
输出:
[1]
[1]
此代码同时分配[1]
给df
和pd.read_table
。然后代码调用df.drop()
but df
is alist
并且list
没有drop()
方法。更麻烦的是代码将 a 分配list
给pd.read_table
可调用对象。我不确定您要在这里做什么,但这肯定是您错误的根源。
推荐阅读
- python-3.x - 将 matplotlib 文本颜色更改为白色 (#FFFFFF) 会干扰图像输出
- etl - 有什么方法可以自动从 Youtube Analytics 端点获取指标?
- google-analytics - google analytics api -- 获取每个客户端 ID 的用户存储桶分数
- php - `INSERT INTO SELECT` 根据运行查询的客户端转换值
- python - TypeError: __call__(): 不兼容的函数参数。支持以下参数类型:
- r - 反转正则表达式:允许错误的 grep
- c++ - Clang libtooling 标头错误
- asp.net-core - 在 C# ASP.NET Core .NET 中解析 json 时出错
- java - 如何在spring boot rest控制器中仅在某些端点上启用http,在其他一些端点上启用https?
- sql - 在 sql/json (Oracle 数据库) 中构造嵌套的 JSON 值