Python - 用数字替换 string/symbol

Python - replacing string/symbol with numbers

我在 pandas 数据框中有一些列由字符串组成,我想将其转换为数字(浮点数)。问题如下:一些条目仅包含 '-',而其他条目则如 '1E-06'。有没有一种简单的方法可以只替换 '-' 符号,例如使用数字——例如使用 df['col'].str.replace('-','1000'),而不修改字符串 '1E-06'?否则,'1E-06' 也会被修改,例如转化为'1E100006',会影响后续转化为浮点数。

我会做:

for string in your_stuff:
    string = string.replace('-','1000') if string == '-' else string;

或者使用

map(lambda string: string.replace('-','1000') if string == '-' else string, your_stuff)

我会这样做:

df = pd.DataFrame({'value':['-','1e-06']})
df['value'] = df['value'].replace('-', '1000')

或:

df['value'].replace('-', '1000', inplace=True)

输出:

value
100
1e-06