sorted_varieties = price_extremes.sort_values(by =['min','max'], ascending = ['False','False'])
| variety | min | max | 
|---|---|---|
| Pinot Grigio | 4.0 | 70.0 | 
| Malbec-Syrah | 4.0 | 78.0 | 
| White Blend | 4.0 | 375.0 | 
| Tempranillo | 4.0 | 600.0 | 
sorted_varieties = price_extremes.sort_values(by =['min','max'], ascending = [False,False])
| variety | min | max | 
|---|---|---|
| Ramisco | 495.0 | 495.0 | 
| Terrantez | 236.0 | 236.0 | 
| Francisa | 160.0 | 160.0 | 
| Rosenmuskateller | 150.0 | 150.0 | 
I got two different sorted values when I passed the ascending arguments in the list format of booleans in string and boolean formats. I expected to run into an error if I passed Boolean values as strings. But the code got executed without any error. How do the booleans in string 'True','False' differ from boolean True, False values in execution?
Advertisement
Answer
A non-empty string evaluates as True, so in your case it is similar to running:
sorted_varieties = price_extremes.sort_values(by=['min','max'],
                                              ascending=[True, True])
