如何使用 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 实例。
我在使用 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
方法
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 实例。