我想在创建对象时传递一个数据集,以便我可以编写方法来操作该对象并修改数据集,例如
`my_obj = study.Study(one_study, a, b)
`my_obj.addDate()
我尝试了以下代码:
`import pandas as pd
`class Study(pd1.DataFrame):`
`def __init__(self, oneStudy, m_flag, s_flag):`
`super().__init__(oneStudy) # Inherits DataFrame properties`
`self.stdyData = pd1.DataFrame(oneStudy, copy=True)`
`self.stdyData.reset_index(inplace = False, drop = True)``
它给出了:
用户警告:Pandas 不允许通过新的属性名称创建列。
还尝试将
self.stdyData = pd1.DataFrame(oneStudy, copy=True)
替换为 self.stdyData = oneStudy.copy()
并得到相同的 Pandas 警告。
我根据堆栈溢出中同一问题的答复绑定了以下内容:
`import pandas as pd`
`class Study(pd1.DataFrame):`
`def __init__(oneStudy, m_flag, s_flag):`
`super().__init__(oneStudy) # Inherits DataFrame properties`
`self.stdyData = pd1.DataFrame(oneStudy, copy=True)`
`self.stdyData.reset_index(inplace = False, drop = True)`
并且 IDE 抱怨 self 未定义。
我该怎么办?
我不太确定我明白你想要做什么,但为了回答你的问题,这只是 python 中的基本类。在我看来,这里根本没有继承的理由。 示例:
import pandas as pd
class Study():
def __init__(self, df):
self.df = df
mydf = pd.DataFrame({"Col1": [1,2,3]})
study = Study(mydf)
print(study.df.columns)