我在使用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])
最后显示:
"加载数据"对象没有属性"groupby">
这意味着如果我想使用groupby函数,我必须在自己的类中自己编写它。但我不想那样做。我只想将我的类转换为Pandas DataFrame,并直接使用它们的包进行一些复杂的操作。
如果能为提供任何帮助,我将不胜感激
您使用类时就好像它是一个函数一样。在load
方法内推送返回语句
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实例。
你能分享下一两行抛出错误的代码吗?您引用的是返回的数据,还是类?
即
df2= test_df.load()
df2.groupby()
或
test_df.groupby()
你想在panda上创建一个新的数据框架类吗?如果是这样的话,你需要这样的东西(可能有效(
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