Я пытаюсь найти среднее значение для всех значений в одном из столбцов моего набора данных. Я сделал df ["column"]. Mean (), но это дает мне смехотворно большое число, которое не имеет смысла, учитывая, насколько малы мои значения. Однако функции min () и max () работают нормально.
Чтобы уточнить, левая часть вывода в первой ячейке - это индексы, а правая часть - значения.
delay["If Delayed, for how long?"].astype(int)
print(delay["If Delayed, for how long?"].min())
print(delay["If Delayed, for how long?"].max())
print(delay["If Delayed, for how long?"].mean()
Это похоже на ошибку. Я открываюсь заново. Можете выложить код вместо картинки?
Вероятно, пандам следует отказаться от использования среднего значения для строкового столбца. Но это не так, поэтому вы получите:
In [154]: s = pd.Series([15,18,16,14,20,16,15]).astype(str)
In [155]: s.sum()
Out[155]: '15181614201615'
In [156]: float(s.sum()) / len(s)
Out[156]: 2168802028802.1428
In [157]: s.mean()
Out[157]: 2168802028802.1428
s.min()
и s.max()
будут «работать», но это лексикографический минимум и максимум, а не числовой, поэтому '111' <'20'.
Сделайте свой столбец числовым, будь то int или float, в зависимости от того, что вы предпочитаете, и помните, что .astype
не работает на месте, поэтому вам понадобится
delay["If Delayed, for how long?"] = delay["If Delayed, for how long?"].astype(int)
если вы хотите, чтобы столбец действительно изменился.
Включите автономный код, который позволяет нам продублировать проблему. Изображения частей вашего кода бесполезны для воспроизведения вашей проблемы.