解决pandas中sort_values()缺少self参数的TypeError问题
问题分析与解决
错误原因
- 调用方式错误:
sort_values()是DataFrame的实例方法,必须通过已加载的DataFrame对象(也就是代码里的df)调用,直接用pd.DataFrame.sort_values()相当于调用类方法,会缺少实例参数self,这就是报错的根源。 - 列名参数错误:
by="col"里的引号会让程序去查找名为col的列,而不是用户输入的列名变量,应该去掉引号直接用col。 - 未满足输出要求:代码没有实现输出排序后前5行的需求,缺少
.head(5)的调用。
修正后的代码
import pandas as pd col = input() df = pd.read_csv("https://media-doselect.s3.amazonaws.com/generic/RM8r5NBrJdA4QeVZXvwbjokwv/Admission_Predict.csv") # 正确调用实例方法,使用输入的列名,降序排序后取前5行 sorted_df = df.sort_values(by=col, ascending=False) print(sorted_df.head(5))
说明
- 用
df.sort_values()替代pd.DataFrame.sort_values(),通过已加载的DataFrame实例调用方法,解决self参数缺失的问题。 by=col直接引用输入的列名变量,确保按用户指定的列排序。.head(5)筛选出排序后的前5行,满足需求。
内容的提问来源于stack exchange,提问作者12205552 PRAGYA CHAUHAN
相关产品推荐
相关产品推荐

