将具有十个算数(e +)的幂的数字texstring转换为python pandas中的float

问题描述 投票:0回答:1

我从dataframe文件中导出的csv行超过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 +)的指数命名法有关。

有没有解决的方法?

python-3.x pandas exponential
1个回答
0
投票

从与QuangHoang的对话中,我应该应用该功能:

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

由于几乎整个DataFramestr对象,所以我运行了以下代码行:

df2 = df.apply(lambda x : pd.to_numeric(x, errors='coerce'))
© www.soinside.com 2019 - 2024. All rights reserved.