Pandas - установка числовых переменных - PullRequest
0 голосов
/ 01 августа 2020

У меня возникли трудности с установкой некоторых переменных в numeri c. (Я только начал изучать python для науки о данных и имею минимальный опыт.)

Я пробовал те:

data["S2BQ1A25"] = data["S2BQ1A25"].convert_objects(convert_numeric=True)

df[["S2BQ1A16", "S2BQ1A25"]] = df[["S2BQ1A16", "S2BQ1A25"]].apply(pd.to_numeric)

data["S2BQ1A16"] = pandas.to_numeric(data["S2BQ1A16"] )

data["S2BQ1A16"] = pd.to_numeric(data["S2BQ1A16"])

Я использую Anaconda, Spyder для программирования. Python 3.8. Я импортировал pandas (1.0.5) и numpy (1.18.5).

Заранее спасибо.

Edit : Для S2BQ1A16 и S2BQ1A25 были 4 варианта: 1 да, 2 нет, 9 неизвестно, BL. NA, пожизненный трезвенник.

Ошибки у меня соответственно:

 File "/home/nida/Desktop/p-projects/temp.py", line 18, in <module>
    data["S2BQ1A25"] = data["S2BQ1A25"].convert_objects(convert_numeric=True)

  File "/home/nida/anaconda3/lib/python3.8/site-packages/pandas/core/generic.py", line 5274, in __getattr__
    return object.__getattribute__(self, name)

AttributeError: 'Series' object has no attribute 'convert_objects'
  File "/home/nida/Desktop/p-projects/temp.py", line 18, in <module>
    df[["S2BQ1A16", "S2BQ1A25"]] = df[["S2BQ1A16", "S2BQ1A25"]].apply(pd.to_numeric)

NameError: name 'df' is not defined
  File "/home/nida/Desktop/p-projects/temp.py", line 18, in <module>
    data["S2BQ1A16"] = pandas.to_numeric(data["S2BQ1A16"] )

  File "/home/nida/anaconda3/lib/python3.8/site-packages/pandas/core/tools/numeric.py", line 149, in to_numeric
    values = lib.maybe_convert_numeric(

  File "pandas/_libs/lib.pyx", line 1963, in pandas._libs.lib.maybe_convert_numeric

ValueError: Unable to parse string " " at position 0
  File "/home/nida/Desktop/p-projects/temp.py", line 18, in <module>
    data["S2BQ1A16"] = pd.to_numeric(data["S2BQ1A16"])

NameError: name 'pd' is not defined

Ответы [ 2 ]

0 голосов
/ 02 августа 2020

Всем спасибо. Я нашел способ.

data["S2BQ1A16"] = data["S2BQ1A16"].apply(pandas.to_numeric,errors="coerce")
0 голосов
/ 01 августа 2020

попробуйте использовать метод astype pandas

df["column-name"].astype('int64')

Если вы хотите преобразовать тип данных нескольких строк, вы можете передать имена столбцов в виде списка

df[["column-1","column-2"]].astype('int64')

Для типов данных numeri c вы можете использовать:

  1. int64 (64-битный целочисленный тип данных)
  2. float64 (64-битный тип данных с плавающей запятой)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...