如何使用 Pandas 处理从我自己创建的 class 加载的数据?

How to use Pandas to work on a data loaded from my own created class?

我在使用 Pandas 时遇到了一些小问题。问题是我创建了一个存储 class 的文件以从 .csv 文件读取和清理数据。然后我导入自己的库来加载数据,然后我想使用 pandas 数据框进行其他操作。但是由于某些原因,我做不到。

所以,这是我为 loading/reading 文件创建 class 的代码:

import pandas as pd

class Load_Data:
    def __init__(self, filename):
        self.__filename = filename

    def load(self): 
        df = pd.read_csv(self.__filename)
        del df["Remarks"]
        df = df.dropna()

    return df

在另一个文件中,我试图导入这个自行创建的库以进行数据处理,然后尝试使用 Pandas DataFrame 对其进行处理。

from Load_Data import Load_Data
import pandas as pd

test_df = Load_Data("Final_file.csv")
test_df.load()

从我的文件中打印 table 内容没有问题。但是,当我尝试将它 (test_df) 用作 Pandas 数据框时,例如,我想对某些属性进行 GroupBy

test_df.groupby(['width','length])

它最终显示:

'Load_Data' object has no attribute 'groupby'

这意味着如果我想使用 groupby 函数,我必须自己编写 class。但我不想那样做。我只想将我的 class 转换为 Pandas DataFrame 并直接使用他们的包进行一些复杂的操作。

如果有任何善意的帮助,我将不胜感激

你能分享下一行或两行抛出错误吗? 您是在引用返回的数据,还是 class?

df2= test_df.load()
df2.groupby()

或者

test_df.groupby()

您是否正在尝试创建基于 pandas 的新数据框 class? 如果是这样,你需要这样的东西(可能有用)

class LoadDF(pd.DataFrame)
    def __init__(self, filename):
        self.__filename = filename

    def load(self): 
        df = pd.read_csv(self.__filename)
        del df["Remarks"]
        df = df.dropna()
        self = df

您正在使用 class,就像它是一个函数一样。在 load 方法

中推送 return 语句
import pandas as pd

class Load_Data:
    def __init__(self, filename):
        self.__filename = filename
        

    def load(self): 
        df = pd.read_csv(self.__filename)
        del df["Remarks"]
        df = df.dropna()
        return df # this change 

用法:

test_df = Load_Data("Final_file.csv").load() #this change
# or
load_data = Load_Data("Final_file.csv")
test_df = load_data.load()

加载 return 一个 DataFrame 而不是 Load_Data 实例。