Преобразование объекта в число с плавающей запятой с интервалом и символом вычисления минуса python - PullRequest
1 голос
/ 18 июня 2020
    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  

У меня есть база данных, в которой столбец Floating P / L - это объект, который мне нужно преобразовать в float. Я пробовал Google, используется этот способ по умолчанию:

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

Однако после этого символ минуса удаляется

2        16.60
3         4.40
4      1162.04
5        82.88

Мне интересно, как я могу сохранить символ минуса, Я предполагаю, что у других может быть такая же проблема, поэтому я публикую здесь

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Вы можете использовать

df['Floating P/L'] = df['Floating P/L'].replace('[^-\d.]', '', regex=True).astype(float)
#                                                 ^^^
0 голосов
/ 18 июня 2020

Я бы удалил все пробелы (\s), а затем преобразовал бы в float, то есть:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...