I am facing TypeError: sort_values() missing 1 required positional argument: '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)
Detailed Error:
> --------------------------------------------------------------------------- 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() missing 1 required positional argument: 'by'
I tried using following but didn't work
pd.DataFrame.sort_values(dataSim,ascending=[0])[1:10]
Is there anything that I'm missing?
The documentation for Pandas mentions:
DataFrame.sort_values(by,
axis=0,
ascending=True,
inplace=False,
kind='quicksort',
na_position='last')
by : str or list of str Name or list of names which refer to the axis items.
In my example:
df.groupby('product').agg({'weight':'sum'}).sort_values(by='weight')
Adding by='weight' solved the TypeError: sort_values() missing 1 required positional argument: 'by'
The dataframe may have multiple columns, so specify the column you want to sort by.
df = df.sort_values(by='sentence_length').reset_index(drop=True)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With