在熊猫中使用正则表达式删除数字前面的点

时间:2019-04-23 10:05:58

标签: regex pandas

我需要使用大熊猫中的正则表达式删除数字前面的点。

What I have: .9/10 .8/10

What I want: 9/10 8/10

我需要使用df.col.str.extract()

提防,因为还有浮点数11.25 / 10,在这种情况下,我想保留点。

2 个答案:

答案 0 :(得分:1)

我认为这适用于您提供的小示例(下次提供更多数据)

import re
re.sub(r' $', '', re.sub(r'|^.', '', re.sub(r', .', ', ', '.9/10, .8/10 ')))
'9/10, 8/10'

答案 1 :(得分:0)

使用样本df,因为您没有提供样本(请确保提供了样本数据集和将来的预期结果,以供其他人使用)

df = pd.DataFrame ({'Data' : '20.01/10.'},index=[0])
print(df)
    Data
0   20.01/10.
df['Data'] = df['Data'].str.replace('\.$','')
    print(df)
    Data
0   20.01/10

说明

在正则表达式中,$特殊字符"[matches] the end of the string or just before the newline at the end of the string"

假设您只需要删除。从头开始,您可以使用上面的模式。

如果您需要从非数字字符中删除,请使用

"\.(?!\d)"