Why does Python give recursion error for using a method that belongs to an external package
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I'm trying to build functions that calculate the mean, median and mode of a given list. For mode only, I'm using from statistics import mode
(everything else is manual) but when it comes to outputting the result, only the line of code using the mode()
method gives me a recursion error.
This is my code:
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)))
And this is the error:
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
python recursion statistics
add a comment |
I'm trying to build functions that calculate the mean, median and mode of a given list. For mode only, I'm using from statistics import mode
(everything else is manual) but when it comes to outputting the result, only the line of code using the mode()
method gives me a recursion error.
This is my code:
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)))
And this is the error:
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
python recursion statistics
You have no exit condition inmode()
– Kuba
Jan 3 at 9:00
What do you mean?
– user10851318
Jan 3 at 9:02
Inside yourmode
, you're trying to callstatistics.mode
, but when you writemode(numbers)
it means the function you have defined calledmode
. So it's an infinite recursion.
– khelwood
Jan 3 at 9:02
THank you.......
– user10851318
Jan 3 at 9:05
add a comment |
I'm trying to build functions that calculate the mean, median and mode of a given list. For mode only, I'm using from statistics import mode
(everything else is manual) but when it comes to outputting the result, only the line of code using the mode()
method gives me a recursion error.
This is my code:
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)))
And this is the error:
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
python recursion statistics
I'm trying to build functions that calculate the mean, median and mode of a given list. For mode only, I'm using from statistics import mode
(everything else is manual) but when it comes to outputting the result, only the line of code using the mode()
method gives me a recursion error.
This is my code:
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)))
And this is the error:
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
python recursion statistics
python recursion statistics
asked Jan 3 at 8:54
user10851318
You have no exit condition inmode()
– Kuba
Jan 3 at 9:00
What do you mean?
– user10851318
Jan 3 at 9:02
Inside yourmode
, you're trying to callstatistics.mode
, but when you writemode(numbers)
it means the function you have defined calledmode
. So it's an infinite recursion.
– khelwood
Jan 3 at 9:02
THank you.......
– user10851318
Jan 3 at 9:05
add a comment |
You have no exit condition inmode()
– Kuba
Jan 3 at 9:00
What do you mean?
– user10851318
Jan 3 at 9:02
Inside yourmode
, you're trying to callstatistics.mode
, but when you writemode(numbers)
it means the function you have defined calledmode
. So it's an infinite recursion.
– khelwood
Jan 3 at 9:02
THank you.......
– user10851318
Jan 3 at 9:05
You have no exit condition in
mode()
– Kuba
Jan 3 at 9:00
You have no exit condition in
mode()
– Kuba
Jan 3 at 9:00
What do you mean?
– user10851318
Jan 3 at 9:02
What do you mean?
– user10851318
Jan 3 at 9:02
Inside your
mode
, you're trying to call statistics.mode
, but when you write mode(numbers)
it means the function you have defined called mode
. So it's an infinite recursion.– khelwood
Jan 3 at 9:02
Inside your
mode
, you're trying to call statistics.mode
, but when you write mode(numbers)
it means the function you have defined called mode
. So it's an infinite recursion.– khelwood
Jan 3 at 9:02
THank you.......
– user10851318
Jan 3 at 9:05
THank you.......
– user10851318
Jan 3 at 9:05
add a comment |
1 Answer
1
active
oldest
votes
Inside your mode
, you're trying to call statistics.mode
, but when you write mode(numbers)
it means the function you have defined called mode
. So it's an infinite recursion.
If you must have a function called mode
and also make use of statistics.mode
, you can use its qualified name to distinguish which one you mean.
import statistics
...
def mode(numbers):
return int(statistics.mode(numbers))
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54019010%2fwhy-does-python-give-recursion-error-for-using-a-method-that-belongs-to-an-exter%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Inside your mode
, you're trying to call statistics.mode
, but when you write mode(numbers)
it means the function you have defined called mode
. So it's an infinite recursion.
If you must have a function called mode
and also make use of statistics.mode
, you can use its qualified name to distinguish which one you mean.
import statistics
...
def mode(numbers):
return int(statistics.mode(numbers))
add a comment |
Inside your mode
, you're trying to call statistics.mode
, but when you write mode(numbers)
it means the function you have defined called mode
. So it's an infinite recursion.
If you must have a function called mode
and also make use of statistics.mode
, you can use its qualified name to distinguish which one you mean.
import statistics
...
def mode(numbers):
return int(statistics.mode(numbers))
add a comment |
Inside your mode
, you're trying to call statistics.mode
, but when you write mode(numbers)
it means the function you have defined called mode
. So it's an infinite recursion.
If you must have a function called mode
and also make use of statistics.mode
, you can use its qualified name to distinguish which one you mean.
import statistics
...
def mode(numbers):
return int(statistics.mode(numbers))
Inside your mode
, you're trying to call statistics.mode
, but when you write mode(numbers)
it means the function you have defined called mode
. So it's an infinite recursion.
If you must have a function called mode
and also make use of statistics.mode
, you can use its qualified name to distinguish which one you mean.
import statistics
...
def mode(numbers):
return int(statistics.mode(numbers))
answered Jan 3 at 9:05


khelwoodkhelwood
32.3k74465
32.3k74465
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54019010%2fwhy-does-python-give-recursion-error-for-using-a-method-that-belongs-to-an-exter%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You have no exit condition in
mode()
– Kuba
Jan 3 at 9:00
What do you mean?
– user10851318
Jan 3 at 9:02
Inside your
mode
, you're trying to callstatistics.mode
, but when you writemode(numbers)
it means the function you have defined calledmode
. So it's an infinite recursion.– khelwood
Jan 3 at 9:02
THank you.......
– user10851318
Jan 3 at 9:05