Я пытаюсь построить функции, которые вычисляют среднее значение, медиану и режим данного списка.Только для режима я использую from statistics import mode
(все остальное - вручную), но когда дело доходит до вывода результата, только строка кода с использованием метода mode()
дает мне ошибку рекурсии.
Этомой код:
import pandas as pd
from statistics import mode
dataFrame = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv")
area = dataFrame['area'].tolist()
rain = dataFrame['rain'].tolist()
months = dataFrame['month'] = dataFrame['month'].map({'jan': 1, 'feb': 2, 'mar': 3, 'apr': 4, 'may': 5, 'jun': 6, 'jul': 7, 'aug': 8, 'sep': 9, 'oct': 10, 'nov': 11, 'dec': 12}).tolist()
def mean(numbers):
meanOfNumbers = (sum(numbers))/(len(numbers))
return meanOfNumbers
def median(numbers):
if(len(numbers) % 2 == 0):
medianOfNumbers = (numbers[int((len(numbers))/2)] + numbers[int((len(numbers))/2-1)])/2
else:
medianOfNumbers = numbers[int((len(numbers)-1)/2)]
return medianOfNumbers
def mode(numbers):
modeOfNumbers = int(mode(numbers))
return modeOfNumbers
print("The mean of the months is: " + str("%.2f" % round(mean(months))))
print("The median of the months is: " + str("%.2f" % round(median(months))))
print("The mode of the months is: " + str(mode(months)))
И это ошибка:
The mean of the months is: 7.00
The median of the months is: 8.00
---------------------------------------------------------------------------
RecursionError Traceback (most recent call last)
<ipython-input-29-ad10a2f4e71b> in <module>()
33 print("The mean of the months is: " + str("%.2f" % round(mean(months))))
34 print("The median of the months is: " + str("%.2f" % round(median(months))))
---> 35 print("The mode of the months is: " + str(mode(months)))
36
37
<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32
... last 1 frames repeated, from the frame below ...
<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32
RecursionError: maximum recursion depth exceeded