Python 对象转换为带间距和减号计算符号的浮点

Python 对象转换为带间距和减号计算符号的浮点,python,regex,pandas,Python,Regex,Pandas,我有一个数据库,列浮动损益是我需要将其转换为浮动的对象。我试过谷歌,默认的方式是: Time Floating P/L 2 2019.09.30 -16.60 3 2019.10.01 -4.40 4 2019.10.02 -1 162.04 5 2019.10.03 -82.88 但是,执行此操作后,减号将被删除 df['Floating P/L'] = df['Floating P/L'].replace('[^\d

我有一个数据库,列浮动损益是我需要将其转换为浮动的对象。我试过谷歌,默认的方式是:

    Time       Floating P/L    
2   2019.09.30  -16.60  
3   2019.10.01  -4.40   
4   2019.10.02  -1 162.04   
5   2019.10.03  -82.88  

但是,执行此操作后,减号将被删除

df['Floating P/L'] = df['Floating P/L'].replace('[^\d.]', '', regex=True).astype(float)

我想知道如何保留减号,我想其他人可能也有同样的问题,因此我将其张贴在这里,我将删除所有空白(
\s
),然后转换为
浮点
,即:

2        16.60
3         4.40
4      1162.04
5        82.88
输出:

import pandas as pd
df = pd.DataFrame({'Floating':['-16.60','-4.40','-1 162.04','-82.88']})
df['Floating'] = df['Floating'].replace('\s', '', regex=True).astype(float)
print(df)
print(df['Floating'].dtype)

我将删除所有空白(
\s
),然后转换为
浮点值
,即:

2        16.60
3         4.40
4      1162.04
5        82.88
输出:

import pandas as pd
df = pd.DataFrame({'Floating':['-16.60','-4.40','-1 162.04','-82.88']})
df['Floating'] = df['Floating'].replace('\s', '', regex=True).astype(float)
print(df)
print(df['Floating'].dtype)
你可以用

   Floating
0    -16.60
1     -4.40
2  -1162.04
3    -82.88
float64
你可以用

   Floating
0    -16.60
1     -4.40
2  -1162.04
3    -82.88
float64

嗯,
[^\d.]
也会删除减号。试试
[^-\d.]
。为什么不替换空格而不是数字的
df['Floating P/L'].str.replace(“\s”,”)。astype(float)
那么,
[^\d.]
也会删除减号。尝试
[^-\d.]
。为什么不替换空格而不是数字的
df['Floating P/L'].str.replace(“\s”,”).astype(float)