Агрегатная функция в фрейме данных pandas не работает должным образом

#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:

обновите этот вопрос. После тщательной проверки моего кода еще раз, очевидно, когда я импортировал этот файл, все числа стали строками. Итак, урок: не забудьте убедиться, что ваши номера-это настоящие номера! не строки 🙂