Pandas .mean () для столбца

Я пытаюсь найти среднее значение для всех значений в одном из столбцов моего набора данных. Я сделал 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()

Включите автономный код, который позволяет нам продублировать проблему. Изображения частей вашего кода бесполезны для воспроизведения вашей проблемы.

timgeb 12.09.2018 19:36

Это похоже на ошибку. Я открываюсь заново. Можете выложить код вместо картинки?

ayhan 12.09.2018 19:36
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
2
182
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вероятно, пандам следует отказаться от использования среднего значения для строкового столбца. Но это не так, поэтому вы получите:

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)

если вы хотите, чтобы столбец действительно изменился.

Другие вопросы по теме