【问题标题】:How do I use classes for data manipulation in Python?如何在 Python 中使用类进行数据操作?
【发布时间】:2017-09-26 02:08:21
【问题描述】:

我有一些 Python 经验,想使用类操作一些数据文件,主要是为了获得 OOP 方面的经验。场景如下:对于我们测试的每个样本(例如 sample_1),该工具会生成一个具有以下结构的文本数据文件(例如 sample_1_file)(您可以看到该文件具有不同的数据部分):

test_type_I, meta_data_I
{data_I = n1 rows x m1 columns}

test_type_II, meta_data_II
{data_II = n2 rows x m2 columns}

test_type_III
{data_III = n3 rows x m3 columns}
.
.
and so on

我希望实现的是能够访问每个数据部分的 test_type、meta_data 和 data,然后按我想要的方式操作数据。例如,假设我创建了一个类似

的对象
sample_1 = myClass(sample_1_file)

那么我希望能够访问数据文件的不同部分:

sample_1.meta_data_I
plot(sample_1.data_I['x'],sample_1.data_I['y'])
print(sample_1.data_I)
and so on

我已阅读有关课程的信息,并看过一些 youtube 视频、典型的员工课程等。但是,就我而言,这是我的问题:

1. What does my __init__ method take as input? 
2. What am I initializing?
3. What would be my typical methods?
4. What are the data for my class

我可以用 Python(和 pandas)中的简单函数来做我想做的事,但我真的很想在课程中获得经验,并将其应用到与我的工作相关的事情上。我发现了这个:How to overload __init__ method based on argument type? 这有一定的相关性,但答案使用了我不熟悉的高级概念。

【问题讨论】:

    标签: python python-3.x file class oop


    【解决方案1】:

    类的最简单版本如下所示:

    class SampleResult():
        def __init__(self, sample_number, sample_dataframe):
            self.number = sample_number
            self.data = sample_dataframe
    

    然后您将使用以下内容实例化此类:

    result1 = SampleResult(1, sample1_dataframe)

    您可以访问数据,例如:

    result1.data['x']

    在此代码中,您正在实例化SampleResult 对象的实例。您可以将__init__ 方法设置为采用您喜欢的任何参数 - 但每个方法都必须接受至少一个名为self 的参数(名称“self”只是一种约定,但非常严格)。

    您的方法和数据完全取决于您 - 这取决于您想做什么!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-18
      • 2014-07-20
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多