#python #pandas #aggregate
Вопрос:
Я пытаюсь суммировать определенный столбец на основе группы из другого столбца, у меня правильный код, но результат сильно отличается. Поэтому я попробовал просто функцию min() для этой группы, результат этого также полностью отличается от ожидаемого результата, я случайно сделал что-то не так?
Ниже приведены изображения отображаемого df. Я сгруппировал его по lga_desc, и при проверке минимального значения из этих строк я получаю неверный вывод
|Taxable Income |lga_desc|
|300,000,450 |Alpine |
|240,000 |Alpine |
|700,000 |Alpine |
|260,000,450 |Ararat |
|469,000 |Ararat |
|5,200,000 |Ararat |
df = df.groupby('lga_desc')
df = df['Taxable income'].min()
output when applying min function:
lga_desc
Alpine 700,000
Ararat 469,000
это неправильные выходные данные из данного фрейма данных
спасибо вам за помощь!
Ответ №1:
Сначала вам нужно преобразовать тип данных в int:
df['Taxable Income'] = df['Taxable Income'].str.replace(',', '').astype(int)
result = df.groupby('lga_desc')['Taxable Income'].min().reset_index()
выход:
lga_desc Taxable Income
0 Alpine 240000
1 Ararat 469000
Ответ №2:
обновите этот вопрос. После тщательной проверки моего кода еще раз, очевидно, когда я импортировал этот файл, все числа стали строками. Итак, урок: не забудьте убедиться, что ваши номера-это настоящие номера! не строки 🙂