在 python pandas 中将具有 10 次幂 (e+) 的数字文本字符串转换为浮点数

Turn numeric text string with powers of ten nomenclator (e+) into float in python pandas

我有一个 dataframecsv 文件中导出的超过 30000 行和近 40 列的文件。

它的大部分混合了 strint 特征。

-整数是 int

-浮点数和十的幂是 str

看起来像这样:

Id       A                 B
1        2.5220019e+008    1742087
2        1.7766118e+008    2223964.5
3        3.3750285e+008    2705867.8
4        97782360          2.5220019e+008

我试过以下代码:

import pandas as pd
import numpy as np
import geopandas as gpd
from shapely.geometry import Point, LineString, shape

df = pd.read_csv('mycsvfile.csv').astype(float)

这会产生此错误消息:

ValueError: could not convert string to float: '-1.#IND'

我想这与 python 库无法转换的十次幂 (e+) 的指数命名有关。

有办法解决吗?

根据我与 QuangHoang 的对话,我应该应用函数:

pd.to_numeric(df['column'], errors='coerce')

因为几乎整个 DataFrame 都是 str 对象,我 运行 下面的代码行:

df2 = df.apply(lambda x : pd.to_numeric(x, errors='coerce'))