我有一个来自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
类型。
我希望整个系列的类型为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
仍然是数字?