Я очень новичок в 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'
Это связано с тем, что вы вызываете 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]