1
pandas.DataFrame
개체 주위에 래퍼 클래스를 만들려고합니다. 이 클래스에 대한 고유 한 메서드를 작성한 후 팬더의 메서드를 사용할 수도 있지만 팬더에서 온 것으로 명시 적으로 알려줍니다. 이런 식으로 작동합니다.데이터 프레임을 반환하는 메서드가있는 pandas.DataFrame 래퍼 만들기
df = pd.DataFrame(np.random.randn(5,2))
md = myData(df)
a = md.df # returns the original pandas.DataFrame "df" to a (equivalent of a=df
print(md) # prints as myData class
print(md.df) # prints just as print(df) would. Equiv to print(df)
md.mean() # mean as defined in myData class. Returns myData object
md.df.mean() # mean as defined in pandas. Returns dataframe object
md.std() # myData std
md.df.std() # pandas std
지금까지 내가 할 수 있었던 것은 실패한 시도였습니다. 내가 정말로해야한다고 생각하는 한가지는
import pandas as _pd
class myData(_pd.DataFrame):
"""
Attempt to create a myData object
"""
def __init__(self, df, dic):
df = df.copy()
print(type(df))
self.df = df
self = df
RuntimeError: maximum recursion depth exceeded while calling a Python object
으로 끝납니다.
EDIT
다음 코드 같은 에러로 끝난다.
import pandas as _pd
class myData(_pd.DataFrame):
"""
Attempt to create a myData object
"""
def __init__(self, df, dic):
df = df.copy()
self.dic = dic
super(myData, self).__init__(df)
self.df = df
그러나 나는 그런
def __init__(self, df, dic):
df = df.copy()
super(myData, self).__init__(df)
를하려고하면, 그것은 작동하지만, 모든 방법은 DataFrames의 이미이기 때문에 결과는 정말 DataFrame 인 MYDATA 개체입니다.
코드에 무엇이 잘못되었거나 더 나은 방법이 있는지 알고 싶습니다. 당신은 부모로 DataFrame
을 사용할 수 없습니다
당신은 부모 클래스 '를 액세스 할 수있는 속성과'슈퍼를 사용하는 방법()'[이 질문] (HTTP에서 논의 : //stackoverflow.com/q/576169/3991125). – albert
팁에 대한 @albert 감사. 내 편집을 보아라. – TomCho