微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

所以,这是我创建的用于加载/读取文件的类的代码

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()

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

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

它最终显示

'Load_Data' 对象没有属性 'groupby'

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

如果您有任何帮助,我将不胜感激

解决方法

您正在使用类,就好像它是一个函数。在 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()

load 返回一个 DataFrame 而不是 Load_Data 实例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。