如何将类属性创建为数据框

问题描述 投票:0回答:1

我想在创建对象时传递一个数据集,以便我可以编写方法来操作该对象并修改数据集,例如

`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 未定义。

我该怎么办?

dataframe attributes
1个回答
0
投票

我不太确定我明白你想要做什么,但为了回答你的问题,这只是 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)
© www.soinside.com 2019 - 2024. All rights reserved.