Проблема с групповым табелем Python Pandas? - PullRequest
1 голос
/ 28 февраля 2020

Пример моего набора данных таков:

data=pd.DataFrame({"Sex":["male", "male", "male", "female", "female"],
                   "Housing":["rent", "rent", "own", "own", "rent"],
                  "Saving accounts":[1000, 1200, 3000, 4000, 5600],
                  "Checking account":[1200, 1540, 6780, 2000, 3000]})

У меня есть код, подобный приведенному ниже:

data.groupby(['Sex', 'Housing']).agg({'Saving accounts':[min, max, np.mean, np.median, sum],
                          'Checking account':[min, max, np.mean, np.median, sum]})

Я хотел бы получить таблицу, которая покажет мне базовую c статистику как: мин, макс и т. д. c. на основе пола и жилья, например: мужчина, у которого есть собственный дом, имеет минимальные сберегательные счета, например, 1000 и максимум 6000, и минимальный текущий счет 2000 и максимум 5000 и то же самое для среднего и среднего. Я хочу иметь что-то вроде этого: (пример, конечно, о других данных)

Тем не менее, у меня есть ошибка:

TypeError: '<=' not supported between instances of 'str' and 'float'

Что мне делать? Спасибо за вашу помощь.

1 Ответ

1 голос
/ 28 февраля 2020

Проблема в том, что столбцы не имеют числовых значений c.

Так что попробуйте привести к целым числам или числам с плавающей запятой:

cols = ['Saving accounts', 'Checking account']
data[cols] = data[cols].astype(int)
#data[cols] = data[cols].astype(float)

И в случае неудачи из-за некоторых не числовых значений c используйте to_numeric с errors='coerce' для преобразования не разбираемых значений в пропущенные значения:

cols = ['Saving accounts', 'Checking account']
data[cols] = data[cols].apply(pd.to_numeric, errors='coerce')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...