У меня есть столбец (типа Series) из DataFrame (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
В настоящее время это объект типа.
Полученное значение 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
остались в виде чисел?