Jun-28-2022, 06:12 PM
I would do the conversion when reading the csv file.
import pandas as pd import io data = io.StringIO( """ Name, Percent A ,5% B, 100% C, 20% D ,3% """ ) def percent_to_float(valuestr): """Convert percent to floats. Strip trailing %, convert to float and divide by 100""" return float(valuestr.replace("%", "")) / 100.0 df = pd.read_csv(data, converters={"Name": str.strip, "Percent": percent_to_float}) print(df.sort_values(by=["Percent"]))
Output: Name Percent
3 D 0.03
0 A 0.05
2 C 0.20
1 B 1.00