Python throws the error, ‘dataframe’ object has no attribute ‘sort’, because Pandas deprecated sort()
function in favor of sort_values()
and sort_index()
.
As, the name indicates, sort_values()
is used to sort a dataframe by value and sort_index()
sorts it by index.
Consider this example –
np.random.seed(0) df = pd.DataFrame({'A': list('accab'), 'B': np.random.choice(10, 5)}) df A B 0 a 7 1 c 9 2 c 3 3 a 5 4 b 2
In this code, we are defining a DataFrame, df, with two columns, A and B. The first column is the array of characters, ['a', 'c', 'c', 'a', 'b']
. The second column is the random number array with 5 values and maximum weight of 10.
Now, in order to sort this dataframe, we can use sort_values()
or sort_index()
.
To sort it by value and using single column –
df.sort_values(by='A') A B 0 a 7 3 a 5 4 b 2 1 c 9 2 c 3
To sort it by multiple columns –
df.sort_values(by=['A', 'B']) A B 3 a 5 0 a 7 4 b 2 2 c 3 1 c 9
To sort it by index, use sort_index() –
df.sort_index() A B 0 a 7 1 c 9 2 c 3 3 a 5 4 b 2