如何解决使用Pandas的DataFrame.drop方法时触发的FutureWarning警告
问题修复方案
警告原因
FutureWarning: In a future version of pandas all arguments of DataFrame.drop except for the argument 'labels' will be keyword-only
该警告触发原因是你调用DataFrame.drop()方法时,第二个参数直接按位置传入了代表删除列的1,未来版本的pandas要求除第一个labels参数外,其余所有参数都必须通过关键字形式传递,不支持位置传参。
修复方法
将所有drop调用中代表轴向的参数改为显式的关键字参数axis=1即可消除警告,修改后的完整代码如下:
import pandas active_employee = pandas.read_excel("All Active Employee.xlsx", sheet_name=0) data_one_clean = active_employee.drop(active_employee.columns[0:3], axis=1) data_two_clean = data_one_clean.drop(data_one_clean.columns[1:10], axis=1) data_three_clean = data_two_clean.drop(data_two_clean.columns[2], axis=1) data_final = data_three_clean.drop(data_three_clean.columns[3:], axis=1) print(data_final)
优化建议(可选)
你可以把多次drop操作合并成一次,减少不必要的中间变量,写法更简洁:
import pandas active_employee = pandas.read_excel("All Active Employee.xlsx", sheet_name=0) # 先汇总所有需要删除的列索引 drop_cols = [*range(3), *range(4,13), 14, *range(17, len(active_employee.columns))] data_final = active_employee.drop(active_employee.columns[drop_cols], axis=1) print(data_final)
内容的提问来源于stack exchange,提问作者Aravind Viswanathan
相关产品推荐
相关产品推荐

