Boas Vitor!  Tudo bem?  Espero que sim.
Nesse caso, o pd.sort_values não funciona pois a coluna datahora é para o Pandas uma string, e não uma data. E portanto ordena essa coluna como se fosse uma string e não como um datetime.
Entretanto, existe uma maneira bastante eficiente de resolve isso, através da função pd.to_datetime que transforma uma coluna de strings em datetimes.
Criei um DataFrame fictício para usar de exemplo:
dados = pd.DataFrame()
datas = ['28/02/2020', '04/03/2020', '07/03/2020']
vendas = [137, 238, 159]
dados['data'] = datas
dados['vendas'] = vendas
Temos um DataFrame da seguinte forma:
|  | data | vendas | 
|---|
| 0 | 28/02/2020 | 137 | 
| 1 | 04/03/2020 | 238 | 
| 2 | 07/03/2020 | 159 | 
Entretanto, se consultarmos os tipos das colunas, através da dados.dtypes, obteremos:
data      object
vendas     int64
Data é um objeto pois é assim que as strings são representadas no DataFrame.
Para transforma-las em datetimes, usaremos a função pd.to_datetime(), que recebe uma Series e um formato e gera um objeto datetime a partir dessas informações. Veja o código abaixo:
dados.data = pd.to_datetime(dados.data, format='%d/%m/%Y')
O format refere-se a como a data está indicada, sendo %d o dia, %m o mês e %Y o ano com 4 dígitos. 
Agora, a coluna data é composta por datetimes e podemos realizar a ordenação por valores:
dados.sort_values('data')
que retorna:
|  | data | vendas | 
|---|
| 1 | 04/03/2020 | 238 | 
| 2 | 07/03/2020 | 159 | 
| 0 | 28/02/2020 | 137 | 
Espero ter ajudado! 
Bons Estudos!!