python运行报错 KeyError: “[‘...’] not in index”
短信预约 -IT技能 免费直播动态提醒
我在使用python指定列读取xlsx数据时遇到这个报错,具体原因不知。
这个错误通常表示你正在尝试访问一个不存在的索引或列。为了解决这个错误,你应该检查正在使用的代码并确定是否存在以下情况之一:
- 索引或列名错误: 检查是否在 DataFrame 中具有正确的索引或列名,可以通过 df.columns 或 df.index 属性来验证。
- 数据缺失:检查是否存在数据缺失导致无法访问某些索引或列,可以通过 df.isnull().sum() 来检查缺失数据量,并考虑进行填充、删除或者插值等操作。
- 数据类型问题:检查索引或列是否是您期望的数据类型。例如,如果您正在使用字符串索引,则确认它们在数据帧中是否被正确地设置为对象类型而不是整数类型。
针对这个报错,我的解决方式主要是,尝试下重置索引。
df = df .reindex(columns=columns) #索引重置
索引重置后发现问题得以解决。
源码如下:
import pandas as pdpd.set_option('display.max_columns', None) #显示所有列pd.set_option('display.unicode.ambiguous_as_wide', True) #设置各列对齐pd.set_option('display.unicode.east_asian_width', True) pd.set_option('display.width', 180) #设置打印宽度import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #解决中文乱码import matplotlib.colors as mcolorsclass="lazy" data-src_df = pd.read_excel('./data4.xlsx', sheet_name='淘宝201805')print('原始数据集:')print(class="lazy" data-src_df.head(20))columns = ['买家会员名','买家支付宝账号','买家应付货款','买家实际支付金额','订单状态','收货人姓名','收货地址','联系手机','订单创建时间','订单付款时间','宝贝标题','宝贝种类','订单备注','宝贝总数量','类别','图书编号']class="lazy" data-src_df = class="lazy" data-src_df.reindex(columns=columns) #索引重置print('\n选择需要读入的列:')df = class="lazy" data-src_df[columns]print(df.head(20))
来源地址:https://blog.csdn.net/guigenyi/article/details/128340043
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341