ValueError: не удалось преобразовать строку в число с плавающей точкой: '2,019,278' - потенциально недопустимый символ или формат? - PullRequest
0 голосов
/ 28 сентября 2019

У меня проблема с преобразованием формата из объекта в float64.Я не могу выполнять какие-либо матричные операции до тех пор, пока не произойдет это преобразование, и, как правило, это вызывает большое раздражение, потому что я попадаю в сорняки ...

Потенциально это связано с включением пробела или пробелаи апостроф в массиве в исходном формате.

Исходный массив выглядит так:

array([[' 2,019,278 ', ' 14,569,743 ', ' 14,116,057 ', ' 30,705,078 '],
   [' 514,049 ', ' 3,301,330 ', ' 1,775,624 ', ' 5,591,003 '],
   [' 40,364 ', ' 283,894 ', ' 138,342 ', ' 462,600 '],
   [' 77,849 ', ' 528,504 ', ' 665,829 ', ' 1,272,182 '],
   [' 4,534 ', ' 39,282 ', ' 23,902 ', ' 67,718 '],
   [' 182,313 ', ' 795,102 ', ' 369,981 ', ' 1,347,396 '],
   [' 256,867 ', ' 694,895 ', ' 240,025 ', ' 1,191,787 '],
   [' 1,527,829 ', ' 12,690,612 ', ' 12,968,625 ', ' 27,187,066 '],
   [' 771,142 ', ' 2,937,748 ', ' 1,612,082 ', ' 5,320,972 ']],
  dtype=object)

Мой код выглядит так:

a = pd.DataFrame.to_numpy(df_By_Race_Disability, dtype=None, copy=False)
a = a.astype('float64')

Это ошибка, которую я получаю:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-18-ba9570a13fdd> in <module>
      1 a = pd.DataFrame.to_numpy(df_By_Race_Disability, dtype=None, copy=False)
      2 #b = pd.DataFrame.to_numpy(df_By_Race_Total, dtype=None, copy=False)
----> 3 a = a.astype('float64')
      4 #b = b.astype('float64')
      5 #b = np.reciprocal(b)

ValueError: could not convert string to float: ' 2,019,278 '

1 Ответ

0 голосов
/ 28 сентября 2019

Сделайте сначала это:

df_temp = df_By_Race_Disability.applymap(lambda x: x.replace(',', ''))

Затем вы можете продолжить с вашим кодом

a = pd.DataFrame.to_numpy(df_temp, dtype=None, copy=False)
a = a.astype('float64')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...