Codechef平台Python3.6环境pandas sort_values传ignore_index参数报错
问题原因及解决方法
产生原因
sort_values() 的 ignore_index 参数是 pandas 1.0.0版本才新增的功能,Python版本和pandas包的版本互相独立,你本地Python3.6环境安装的pandas版本≥1.0.0,所以可以正常运行;但Codechef平台的Python3.6环境内置的pandas版本低于1.0.0,无法识别该参数,因此抛出TypeError。
解决方法
将ignore_index=True的写法替换为低版本pandas兼容的reset_index(drop=True)即可,二者实现的效果完全一致:排序完成后直接重置索引,丢弃原来的排序前的索引。
修改后的完整代码如下:
import pandas as pd #读取输入 count = list(map(int, input().split(" "))) df = pd.DataFrame(count, columns=['count']) df['old_index'] = range(len(count)) # 替换参数为reset_index实现相同效果 df = df.sort_values(by='count', ascending=True).reset_index(drop=True) print(df.loc[:,'old_index'])
输入1 5 3 7时,输出结果和原代码预期完全一致。
内容的提问来源于stack exchange,提问作者Neo
相关产品推荐
相关产品推荐

