我遇到了TypeError: sort_values()缺少一个必需的位置参数:'by'。
for i in range(0,len(data_sims.index)):
for j in range(1,len(data_sims.columns)):
user = data_sims.index[i]
serial = data_sims.columns[j]
if dataUser.ix[i][j] == 1:
data_sims.ix[i][j] = 0
else:
serial_top_names = data_neighbours.ix[serial][1:10]
serial_top_sims = dataSim.ix[serial].sort_values(ascending=False)[1:10]
user_preferences = dataUser.ix[user,serial_top_names]
data_sims.ix[i][j] = getScore(user_preferences,serial_top_sims)
详细错误:
> --------------------------------------------------------------------------- TypeError Traceback (most recent call last) in () 9 else: 10 serial_top_names = data_neighbours.ix[serial][1:10] ---> 11 serial_top_sims = dataSim.ix[serial].sort_values(ascending=False)[1:10] 12 user_preferences = dataUser.ix[user,serial_top_names] 13
TypeError: sort_values()缺少一个必需的位置参数:'by'
我尝试使用以下方法,但没有成功
pd.DataFrame.sort_values(dataSim,ascending=[0])[1:10]
我是否漏掉了什么内容?
by=someSortingFunction
作为参数放入,但我不确定。 - Maxserial = data_sims.columns[j]
时,您使用了列,但是在dataSim.ix[serial]
中,您正在对行进行索引。这是有意的吗?它仍应返回一个Series,并且不应该需要一个“by”参数,但这可能与问题有关。另外,您使用的pandas版本是什么? - ayhan