2017-09-26 31 views
0

我有一些Python的经验,并希望使用类操纵一些数据文件,主要是为了获得面向对象的经验。这里是场景:对于我们测试的每个样本(例如sample_1),该工具生成具有以下结构的文本数据文件(例如sample_1_file)(您可以看到该文件具有不同的数据部分):如何在Python中使用类进行数据操作?

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(和熊猫)简单的功能,但我真的想获得经验,在课程,并希望将它应用到的东西这与我的工作有关。我发现这个:How to overload __init__ method based on argument type? 它有一些相关性,但答案使用了我不熟悉的高级概念。

回答

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”仅仅是一个约定,但是非常强大的约定)。

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

相关问题