Панды .mean () для столбца - PullRequest
       4

Панды .mean () для столбца

0 голосов
/ 12 сентября 2018

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

1 Ответ

0 голосов
/ 12 сентября 2018

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

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». </p>

Сделайте ваш столбец числовым, int или float, в зависимости от того, что вы предпочитаете, и помните, что .astype не работает на месте, поэтому вам потребуется

delay["If Delayed, for how long?"] = delay["If Delayed, for how long?"].astype(int)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...