【发布时间】:2020-04-13 01:07:12
【问题描述】:
我有一个包含一列字符串的数据集,我想将其转换为浮点数。但是,该列有一个条目,其中包含括号内的数字(这意味着是负数)。我尝试了不同的方法——间接的和直接的——将值替换为可以让我将其转换为浮点数的表示,但我一直失败,我不明白为什么:
这是括号下的数字为字符串的行:
我的代码:
mask1 = purchases.Amount.str.contains('\(').fillna(False)
purchases.loc[mask1, :]['Amount'] = purchases.loc[mask1, :]['Amount'].str.replace('\(', '-').str.replace('\)', '')
purchases.loc[mask2, :]['Amount'] = purchases.loc[mask2, :]['Amount'].str.replace('\s+', '').str.replace('[a-z]+', '')
# Both fail to replace
purchases.loc[mask1, :]['Amount'] = '-29.99' # direct assignment also fails
结果:
我做错了什么?我该如何纠正?
【问题讨论】:
标签: regex python-3.x pandas replace