如何处理Python中的无穷大值,并将列的其余部分转换为float?

2024-04-24 22:45:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含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和数据类型后的输出如下

    (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的列有多个无穷大值,因此无法转换为float。我已经阅读并尝试了很多这方面的内容来替换、删除、删除这些值和行,但没有任何效果。我想从数据帧中删除或替换所有那些“无穷大”字符,并想将KanalC转换为与其余列一样的float


Tags: 文件数据代码编码dfobjectfloatutf