当前位置: 首页 > 知识库问答 >
问题:

调用 Python 对象运行时错误时超出最大递归深度

司徒钱青
2023-03-14
import pandas as pd
import xlsxwriter
import openpyxl as px
import numpy as np
from xlwt import Workbook
from os.path import expanduser

home = expanduser("~")

def read_survey():  
    df_appliance=pd.read_csv('C:/Users/nidi/Desktop/New folder/app_info.csv')
    df_appliance.fillna(0, inplace=True)
    return df_appliance

df_appliance=read_survey()

def map_appliance_info(df_appliance):

    oven_usage=[]
    #oven_type_radio=[]
    oven_type_micro=[]
    oven_type_oven=[]
    tube_light_count=[]
    led_count=[]
    incand_count=[]
    cfl_count=[]

    for i in range(len(df_appliance['sur_key'].values)):                   

        if df_appliance['oven-type'].values[i]=='radio':
            #oven_type_radio.append(1)
            oven_type_micro.append(0)
            oven_type_oven.append(0)
        elif df_appliance['oven-type'].values[i]=='micro':
            #oven_type_radio.append(0)
            oven_type_micro.append(1)
            oven_type_oven.append(0)
        elif df_appliance['oven-type'].values[i]=='oven':
            #oven_type_radio.append(0)
            oven_type_micro.append(0)
            oven_type_oven.append(1)
        else:
            #oven_type_radio.append(0)
            oven_type_micro.append(0)
            oven_type_oven.append(0)

        if df_appliance['oven-ousg'].values[i]=='little':
            oven_usage.append(1)
        elif df_appliance['oven-ousg'].values[i]=='defrost':
            oven_usage.append(5)
        elif df_appliance['oven-ousg'].values[i]=='mod':
            oven_usage.append(12)
        elif df_appliance['oven-ousg'].values[i]=='ext':
            oven_usage.append(30)
        else:
            oven_usage.append(0)

        #return df_appliance_mapped

        df_appliance_mapped = map_appliance_info(df_appliance)

result=np.array(df_appliance_mapped)

这是我的代码。打印map_appliance_info(df_appliance)时,我收到错误-

文件"E:/iisc/code/try.py",第69行,map_appliance_infodf_appliance_mapped=map_appliance_info(df_appliance)

文件“E:/iisc/code/try.py”,第35行,map_appliance_info中的i在范围内(len(df_appliance['sur_key'].values)):

文件“C:\ Users \ nidi \ anaconda 2 \ lib \ site-packages \ pandas \ core \ frame . py”,第1957行,在getitem indexer = convert _ to _ index _ sliceable(self,key)中

文件“C:\Users\nidi\Anaconda2\lib\site packages\pandas\core\index.py”,第1658行,位于convert_to_index_sliceable elif isinstance(key,compat.string_types)中:

RuntimeError:调用Python对象时超出最大递归深度

有人能帮忙吗?谢谢

共有1个答案

范侯林
2023-03-14

因为你打电话给pd。read_excel,必须安装Pandas。因此,合并数据的最简单方法是调用<code>pd。在两个DataFrame上合并:

import pandas as pd

df1 = pd.DataFrame({0: [1, 1, 0, 0], 1: [0, 0, 1, 1], 2: [1, 2, 1, 5], 3: [1, 2, 3, 4]})
df2 = pd.DataFrame({0: [0, 1, 1, 0], 1: [1, 0, 0, 1], 2: [1, 2, 1, 5]})
result = pd.merge(df2, df1, on=[0,1,2])
print(result.values)

指纹

[[0 1 1 3]
 [1 0 2 2]
 [1 0 1 1]
 [0 1 5 4]]

如果df_appliance_mapped是第二个DataFrame,您可以使用:

first_df = pd.read_excel('E:/iisc/code/energy_usage_appliance.xlsx',0,header=None)
result = pd.merge(df_appliance_mapped, first_df, on=[0,1,2])
 类似资料:
  • 周一开始用Python编程。我喜欢学习它。但是当在tkinter菜单之间切换时,我一直试图理解如何避免递归。我确信这是一个非常基本的问题,我很感激你能容忍我在这个问题上的无知,但是我在别处找不到答案。 我现在所做的是,最终给了我一个错误:RuntimeError:调用Python对象时超出了最大递归深度 这是我目前使用的模式。更新:下面的代码现在是一个完整的、独立的副本,重现了我面临的问题!:D

  • 问题内容: 我使用以下代码解决了Euler项目的问题10,该代码通过强力工作: 这三个功能的工作方式如下: isPrime 检查数字是否为质数; primeList 返回一个列表,其中包含一组在一定范围内且限制为“ n”的素数,并且; sumPrimes 对列表中所有数字的值求和。(不需要最后一个功能,但是我喜欢它的清晰度,特别是对于像我这样的初学者。) 然后,我编写了一个新函数 primeLis

  • 我正在使用Python进行合并排序。 我已经勾选了< code >合并功能。阵列融合得很好。 但在函数中,将出现错误:--- RuntimeError:超过最大递归深度。 运行时错误回溯(最近一次调用)在 () 63 打印(arr[i]), 64 --- 在合并排序(arr,l,r)53 m=l(r-1)/2 54合并排序(ar,l,m)--- 可能的原因是什么?

  • 我对Python很陌生。我写了一个关于返回 x 在排序的重复元素数组 A 中的出现次数的函数: 错误是:运行时错误:超出最大递归深度。有人知道如何解决它吗?

  • 我不明白为什么我会得到这个最大深度错误。iam试图使用bst递归方法在数组中查找数字索引,下面是我的代码 任何人都可以告诉我代码块中发生了什么 错误块: PS C:\Users\admin\Desktop\DSA

  • 我正试图从ESPN那里获得一些票房成绩。com并将其放入Pandas DataFrame中。我过去也以同样的方式做过类似的事情,没有任何问题。然而,在这种情况下,当我试图保存DataFrame时,我遇到了这个错误。 RuntimeError:调用Python对象时超出最大递归深度 当我试图将它保存为hdf5表时,也出现了类似的错误。 即使这个代码片段也会给出相同的错误。我很困惑它为什么要这样做?与