新手处理课程。
我有一些要转换的数据框对象,但是在用类操作它们时遇到了麻烦。下面是一个例子。目标是转置数据框并将其重新分配为其原始变量名称。在这种情况下,数据帧为assets
。
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_Df_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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句