Binning серии возвращает, казалось бы, не связанную TypeError - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь нарезать созданный мною кадр данных на лотки:

изображение кадра данных, если оно уместно

# create bins and labels
bins = [575, 600, 625, 650]
labels = [
    "$575-$599",
    "$600-$624",
    "$625-$649",
    "$650-$675"
]

schoolSummary["Spending Range"] = pd.cut(schoolSummary["Per Student Budget"], bins, labels = labels)

По какой-то причине я получаю этоошибка:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-73-b938397739fa> in <module>()
      9 
     10 #schoolSummary["Spending Range"] =
---> 11 pd.cut(schoolSummary["Per Student Budget"], bins, labels = labels)

~\Anaconda3\envs\py36\lib\site-packages\pandas\core\reshape\tile.py in cut(x, bins, right, labels, retbins, precision, include_lowest, duplicates)
    232                               include_lowest=include_lowest,
    233                               dtype=dtype,
--> 234                               duplicates=duplicates)
    235 
    236     return _postprocess_for_cut(fac, bins, retbins, x_is_series,

~\Anaconda3\envs\py36\lib\site-packages\pandas\core\reshape\tile.py in _bins_to_cuts(x, bins, right, labels, precision, include_lowest, dtype, duplicates)
    335 
    336     side = 'left' if right else 'right'
--> 337     ids = _ensure_int64(bins.searchsorted(x, side=side))
    338 
    339     if include_lowest:

TypeError: '<' not supported between instances of 'int' and 'str'

Я в замешательстве, потому что я не использовал '<' в коде вообще.Я также использовал </p>

print(type(schoolSummary["Per Student Budget"]))

, и это объект серии, поэтому я не знаю, на что он ссылается на int и str.Это проблема с моими корзинами или ярлыками?

1 Ответ

0 голосов
/ 20 ноября 2018

Из-за низкой репутации я не могу комментировать ваш вопрос,

Вы должны попробовать следующее

bins = [575, 600, 625, 650]
labels = [
    "$575-$599",
    "$600-$624",
    "$625-$649",
    "$650-$675"
]
for bin_ in bins:
    schoolSummary["Spending Range"] = pd.cut(schoolSummary["Per Student Budget"], bin_, labels = labels)

Поскольку bin принимает тип int вместоlist.

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