Python 数据帧与对象列表

Python 数据帧与对象列表,python,dataframe,oop,Python,Dataframe,Oop,在Python中何时在数据帧上使用对象列表 我有一个字符串列表,它将具有多个属性,如分数、字数、一些布尔值等。我创建了一个具有这些属性的对象列表。但我想知道,简单地创建一个数据框架,将每个字符串作为一行,并将其属性添加为列是否更好 class MyObject(): def getString(self): return self.str_name def getSimilarity(self): return self.similarity

在Python中何时在数据帧上使用对象列表

我有一个字符串列表,它将具有多个属性,如分数、字数、一些布尔值等。我创建了一个具有这些属性的对象列表。但我想知道,简单地创建一个数据框架,将每个字符串作为一行,并将其属性添加为列是否更好

class MyObject():

    def getString(self):
        return self.str_name

    def getSimilarity(self):
        return self.similarity

    def getSimilarityBand(self):
        return self.similarity_band

哪个设计更好?

这取决于您的环境

如果您正在构建一个正在读取某些数据的作业,在该数据之上应用转换,然后将其写入输出文件/存储桶,则通常使用数据帧(例如,如果数据帧适合内存,则使用pandas;如果需要分发,则使用pyspark)。其中一个原因是这些库在应用这些类型的转换时会进行一些优化,从而使您的工作更加高效

另一方面,如果您正在构建一个具有大量对象层次结构的更复杂的应用程序,或者构建一个更接近真实世界的应用程序,您会觉得定义良好的对象将使代码更易于阅读,那么对象方法就更有意义


归根结底,这取决于风格;在某种程度上,函数式编程和面向对象编程是不同的。Python坐在这些世界的中间,所以自然会发生一些冲突。没有对错之分。

谢谢@Finlay,除非层次结构变得更复杂,否则我将坚持使用数据帧。