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)