Как обрабатывать значения бесконечности в Python pandas и преобразовывать оставшуюся часть столбца в число с плавающей точкой? - PullRequest
0 голосов
/ 20 марта 2020

У меня есть кадр данных, который содержит 5 столбцов, один из которых имеет несколько значений бесконечности (в кодировке UTF-8). Я использую следующий код для чтения файла и построения df

df = pd.read_csv(file,decimal=',',delimiter=';',header=[0,1],encoding = 'utf-8',low_memory=False)
infinity = df['Kanal C'].loc[250471]
print(infinity)
print (df)
print (df.dtypes)

. После вывода df и dtypes вывод получится следующим образом

    (V)    ∞
Name: 250471, dtype: object
             Zeit   Kanal A   Kanal B      Kanal C   Kanal D
             (ms)       (V)       (V)          (V)       (V)
0      -10.000087  0.079202  0.031558  -2,38404300  0.159326
1      -10.000031  0.079202  0.047367  -2,38404300  0.000000
2       -9.999975  0.039524  0.063177  -2,38404300  0.000000
3       -9.999919  0.039524  0.063177  -2,46339800  0.159326
4       -9.999863  0.079202  0.015748  -2,54306100  0.000000
...           ...       ...       ...          ...       ...
892856  39.999846  0.039524  0.047367  -1,98665100  0.000000
892857  39.999902  0.039524  0.063177  -1,98665100  0.000000
892858  39.999958  0.039524  0.063177  -1,98665100  0.000000
892859  40.000014  0.039524  0.047367  -2,06600600  0.159326
892860  40.000070  0.039524  0.063177  -2,06600600  0.159326

[892861 rows x 5 columns]
Zeit     (ms)    float64
Kanal A  (V)     float64
Kanal B  (V)     float64
Kanal C  (V)      object
Kanal D  (V)     float64
dtype: object

Теперь столбец с именем Kanal C имеет несколько значений бесконечности и, следовательно, не может быть преобразовано в число с плавающей точкой. Я прочитал и попытался многое из этого, чтобы заменить, удалить, удалить эти значения и строки, но ничего не получалось. Я хотел бы удалить или заменить все эти символы бесконечности из кадра данных и хотел бы преобразовать Kanal C в плавающие, как остальные столбцы.

1 Ответ

0 голосов
/ 31 марта 2020

Я нашел способ определить знак бесконечности, используя функцию декодирования python, и это решило большинство моих проблем

inf = b'\xe2\x88\x9e'.decode('utf-8')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...