Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用类调用dataframe对象上的实例时出现问题_Python_Pandas_Class_Oop - Fatal编程技术网

Python 使用类调用dataframe对象上的实例时出现问题

Python 使用类调用dataframe对象上的实例时出现问题,python,pandas,class,oop,Python,Pandas,Class,Oop,处理课程的新手 我有一些要转换的数据帧对象,但我在使用类操作它们时遇到了问题。下面是一个例子。目标是转置数据帧并将其重新分配到其原始变量名。在这种情况下,数据帧是资产 import pandas as pd from requests import get import numpy as np html = get("https://www.cbn.gov.ng/rates/Assets.asp").text table = pd.read_html(html,skipr

处理课程的新手

我有一些要转换的数据帧对象,但我在使用类操作它们时遇到了问题。下面是一个例子。目标是转置数据帧并将其重新分配到其原始变量名。在这种情况下,数据帧是
资产

import pandas as pd
from requests import get
import numpy as np

html = get("https://www.cbn.gov.ng/rates/Assets.asp").text

table = pd.read_html(html,skiprows=[0,1])[2]
assets = table[1:13]

class Array_Df_Retitle:
    def __init__(self,df):
        self.df = df
        
    def change(self):
        self.df = self.df.transpose()
        self.df.columns = self.df[0]
        return self.df
但是,调用
assets=Array\u Df\u Retitle(assets).change()
只会产生一个错误:

KeyError: 0

我想知道哪里出了问题。

我对您的代码做了一些更改。问题来自
self.df[0]
。这意味着您正在选择名为
0
的列。但是,转置后,将不会有任何名为
0
的列。你会有一场争吵

import pandas as pd
from requests import get
import numpy as np

html = get("https://www.cbn.gov.ng/rates/Assets.asp").text

table = pd.read_html(html,skiprows=[0,1])[2]
assets = table[1:13]

class Array_Df_Retitle:
    def __init__(self,df):
        self.df = df
        
    def change(self):
        self.df = self.df.dropna(how='all').transpose()
        self.df.columns = self.df.loc[0,:]
        return self.df.drop(0).reset_index(drop=True)


Array_Df_Retitle(assets).change()