Факторизация набора данных с пандами

1

Я очень новичок в Python. У меня есть панда данных:

d={'col1': [100000, 939321, 28923,100000], 'col2': [-11234, 114567,21234,-11234]}               
mydata=pandas.DataFrame(data=d)

Теперь я хочу преобразовать этот фрейм данных в коэффициент, чтобы получить [1,2,3,1] и [1,2,3,1].

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

from collections import Counter
mydata.col1.factorize(list(range(Counter(mydata.col1.factorize))),sort=True)

Но я понимаю:

factorize() got multiple values for argument 'sort'
Теги:
pandas
dataset

1 ответ

1
Лучший ответ

Это связано с тем, что вы вызываете factorize как функцию-член объекта pandas.Series (в вашем случае вы вызываете его из mydata.col1). В этом случае первым аргументом вызова функции является опция sort, в то время как вы передаете ей еще один pandas.Series. Подробную подпись функции см. В

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.factorize.html

То, что я подозреваю, вы пытались сделать, это вызвать функцию factorize модуля pandas. В этом случае первым аргументом вызова является pandas.Series а второй - опция sort

https://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.factorize.html

Тогда последняя строка вашего кода будет выглядеть примерно так:

pandas.factorize(mydata.col1, sort=True)

PS Я подозреваю, что вы хотите получить доступ к первому элементу

pandas.factorize(mydata.col1, sort=True)[0]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню