преобразовать тип серии панд из объекта в float64 - PullRequest
0 голосов
/ 15 мая 2018

У меня есть столбец (типа 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 остались в виде чисел?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...