Python 将系列类型从对象转换为浮点64

Python 将系列类型从对象转换为浮点64,python,pandas,Python,Pandas,我有一个数据帧(energy[“energy Supply”])中的列(类型系列),如下所示: Country China 127191 United States 90838 Japan 18984 United Kingdom 7920 Russian Federation 30709 Canada 10431 Germany

我有一个数据帧(
energy[“energy Supply”]
)中的列(类型系列),如下所示:

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
注释行的工作方式类似

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

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

我希望整个系列的类型为
float
float64

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

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

我想知道为什么值
127191
90838
被转换成
NaN
,而
30709
10431
仍然是数字?

试试
df['Energy Supply'].astype(float)
。我猜你有一些嵌入的非打印字符。尝试
pd.to\u numeric(第[“能源供应”].str.replace('[^\d-\.]',''),errors='improve')
@piRSquared我尝试了
pd.to\u numeric(第[“能源供应”].str.replace('[^\d-\.]',''),errors='improve')
。得到了同样的结果。嗯,这很奇怪。除非我们能复制数据,否则我们帮不了你。您所拥有的看起来很正常。@HarvIpan谢谢您的评论。虽然您的行给我的结果与行
energy[“energy Supply”]=pd.to_numeric(energy[“energy Supply”])的结果相同,但errors='concurve')