我有一个数据集,其中有一个名为“Discount”的列,其值为“20%折扣”、“25%折扣”等。
我想要的是只保留列中的数字,并删除%符号和'off‘字符串。
我正在使用这个公式来实现它。
df['discount'] = df['discount'].apply(lambda x: x.lstrip('%').rstrip('off')但是,当我应用该公式时,“discount”列中的所有值都变成了"nan“。
我甚至还用了这个公式,
df['discount'] = df['discount'].str.replace('off' , '')然而,这做了同样的事情。
有没有其他方法来处理这个问题?我只想将该列中的所有值设置为25、20、10之类的数字,并去掉百分号和字符串值。
发布于 2021-11-26 21:11:36
试试这个:
d['discount'] = d['discount'].str.replace(r'(%|\s*off)', '', regex=True).astype(int)输出:
>>> df
discount
0 20
1 25https://stackoverflow.com/questions/70130049
复制相似问题