Python如何删除DataFrame首行或首列?list无iloc属性报错如何解决

错误原因
你的df变量实际为列表(list)类型,并非你预想的Pandas DataFrame对象,列表本身不存在iloc属性,因此触发AttributeError报错。
解决方法
第一步:将爬取得到的列表转为DataFrame
import pandas as pd # 替换为你实际存储爬取结果的列表变量 raw_data = 你的爬取结果列表 # 如果爬取的列表第一行是表头,使用下方代码转换,自动把第一行设为列名 df = pd.DataFrame(raw_data[1:], columns=raw_data[0]) # 如果爬取的列表没有表头,直接转换即可 # df = pd.DataFrame(raw_data)
第二步:执行删除操作
删除首行(任选一种即可)
- 方法1:按行索引删除
df = df.drop(index=0)
- 方法2:行切片过滤
df = df[1:]
删除首列(任选一种即可,转换为DataFrame后你原本写的iloc方法也可以正常运行)
- 方法1:按列名删除第一列
df = df.drop(columns=df.columns[0])
- 方法2:列切片过滤
df = df.iloc[:, 1:]
第三步:插入MySQL参考代码
处理完数据后可以直接用Pandas自带的to_sql方法批量写入MySQL:
from sqlalchemy import create_engine # 替换为你自己的MySQL连接信息 connect_config = 'mysql+pymysql://用户名:密码@主机地址:端口/数据库名?charset=utf8mb4' engine = create_engine(connect_config) # if_exists可选值:replace(覆盖旧表)/append(追加写入)/fail(表存在就报错),index设为False不写入DataFrame的索引列 df.to_sql(name='你要写入的MySQL表名', con=engine, if_exists='append', index=False)
内容的提问来源于stack exchange,提问作者Kashif Hussain
相关产品推荐
相关产品推荐

