DataFrame.drop()参数报错求助:传入3个位置参数但仅支持1-2个
解决DataFrame.drop()的TypeError问题
报错原因
你遇到的问题是因为新版Pandas(1.0.0及以上版本)修改了drop方法的参数规则:原来可以直接把axis的取值(比如1代表删除列)作为第二个位置参数传入,但现在这个参数必须用关键字形式指定,否则会被当成额外的位置参数,导致参数数量超出方法预期,触发TypeError。
修复后的代码
有两种可靠的写法可以解决这个问题:
写法一:显式指定axis=1
probe_df = pd.read_csv(csv_file, header=9233, nrows=4608) # Get rid of stuff c_to_drop = 'Unnamed: ' + str(count_tp+1) probe_df = probe_df.set_index("Chamber ID").drop(c_to_drop, axis=1)
写法二:直接使用columns参数(更直观)
probe_df = pd.read_csv(csv_file, header=9233, nrows=4608) # Get rid of stuff c_to_drop = 'Unnamed: ' + str(count_tp+1) probe_df = probe_df.set_index("Chamber ID").drop(columns=c_to_drop)
额外说明
第二种写法用columns直接指定要删除的列名,代码可读性更强,推荐优先使用。如果你的Pandas版本非常旧(低于1.0.0),原来的写法可能有效,但建议升级到稳定版以避免其他兼容性问题。
内容的提问来源于stack exchange,提问作者mkl_2000
相关产品推荐
相关产品推荐

