2017-09-26 54 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」僅僅是一個約定,但是非常強大的約定)。

你的方法和數據完全取決於你 - 這取決於你想要做什麼!

相關問題