将pandas系列类型从object转换为float64

时间:2018-05-15 17:30:41

标签: python pandas

我有一个来自DataFrame(energy["Energy Supply"])的列(类型为Series),如下所示:

Country
China                 127191
United States          90838
Japan                  18984
United Kingdom          7920
Russian Federation     30709
Canada                 10431
Germany                13261
India                  33195
France                 10597
South Korea            11007
Italy                   6530
Spain                   4923
Iran                     NaN
Australia               5386
Brazil                 12149
Name: Energy Supply, dtype: object

目前它是object类型。

NaN值来自此代码:

peta = row["Energy Supply"]
if peta == "...":
    # pd.to_numeric(row["Energy Supply"], errors='coerce')
    row["Energy Supply"] = np.NaN

注释行以类似的方式工作。

我不明白为什么这个系列现在是类型对象。

我检查了每个数值,它们都是float类型。

我希望整个系列的类型为floatfloat64

我尝试通过执行以下操作将整个系列再次转换为数字:

energy["Energy Supply"] = pd.to_numeric(energy["Energy Supply"], errors='coerce')

但在此之后,这个系列改为:

Country
China                     NaN
United States             NaN
Japan                     NaN
United Kingdom            NaN
Russian Federation    30709.0
Canada                10431.0
Germany               13261.0
India                 33195.0
France                    NaN
South Korea               NaN
Italy                     NaN
Spain                     NaN
Iran                      NaN
Australia                 NaN
Brazil                12149.0
Name: Energy Supply, dtype: float64

我想知道为什么价值12719190838被转换为NaN,而3070910431仍然是数字?

0 个答案:

没有答案