【Bug】TypeError: drop() got an unexpected keyword argument 'columns'。

本文介绍了解决Pandas在旧版本中使用columns关键字所导致的问题。由于columns关键字是在Pandas 0.21版本中引入的,因此在早期版本中使用会引发错误。文中提供了更新Pandas到最新版本的方法,通过运行'pip install --upgrade pandas'命令,可以确保Pandas的版本得到更新,从而避免此类错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

pd.__version__#查看版本号

在这里插入图片描述

原因是pandas在0.21的版本才加入了columns关键字,之前的版本是没有的。

用下面这个命令更新Pandas

pip install --upgrade pandas

在这里插入图片描述
再次运行就不报错了
在这里插入图片描述

### 解决方案:Pandas `read_excel` 函数中的 TypeError 错误及百分数处理 当遇到错误提示 `TypeError: read_excel() got an unexpected keyword argument 'columns'` 时,这表示在调用 `pandas.read_excel()` 函数时传递了一个不受支持的关键字参数 `'columns'`。实际上,`read_excel` 不接受名为 `'columns'` 的参数[^1]。 #### 正确的 `read_excel` 参数 为了正确使用 `read_excel` 函数,需要熟悉其合法参数列表。例如: | 参数 | 描述 | |--------------|----------------------------------------------------------------------| | `io` | 文件路径或文件对象 | | `sheet_name` | 工作表名称或索引 | | `header` | 指定哪一行作为列名 | | `usecols` | 需要读取的列 | 如果希望筛选某些列,则应使用 `usecols` 参数而不是非法的 `'columns'` 参数[^1]。 ```python import pandas as pd # 正确方式:使用 usecols 来选择特定列 df = pd.read_excel('file.xlsx', sheet_name='Sheet1', usecols=['A', 'B']) print(df.head()) ``` --- #### 处理 Excel 中百分数被转换为小数的问题 正如之前提到的,默认情况下 Pandas 会将 Excel 表格中的百分数(如 `75%`)自动转换为其对应的十进制形式(如 `0.75`)。这种行为是由底层库决定的,但如果想保留原始格式,可以采取以下措施之一: ##### 方法一:将目标列设置为字符串类型 通过指定 `dtype` 参数,可强制将某列的数据类型设为字符串,从而阻止自动转换的发生。 ```python import pandas as pd # 强制将百分数所在列转为字符串类型 df = pd.read_excel('percentages.xlsx', dtype={'Percentage': str}) print(df['Percentage'].head()) # 输出结果仍然显示为带 % 号的形式 ``` 这种方法适用于只需要展示而不涉及进一步数值运算的情况[^2]。 --- ##### 方法二:手动恢复百分数格式 假如已经完成了数据加载且百分数已被转化为浮点型,可通过乘以 100 并附加 `%` 符号的方式重新构建原始外观。 ```python import pandas as pd # 假设 Percentage 列已经是浮点数 df = pd.read_excel('percentages.xlsx') # 将浮点数还原为百分比字符串 df['Percentage'] = (df['Percentage'] * 100).astype(str) + '%' print(df['Percentage'].head()) # 显示类似于 "75%" 的值 ``` 此方法适合于既完成数据分析又需最终呈现给用户的场合[^3]。 --- ### 总结 针对 `TypeError: read_excel() got an unexpected keyword argument 'columns'` 这种情况,请确认所使用的参数均属于官方文档中列出的有效范围之内。至于 Excel 百分数被解读成小数的现象,可根据具体需求选用不同的解决方案,比如调整数据类型或者后期加工数值表现形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值