2015-01-14 4 views
3

나는 일련의 파이썬 스크립트를 개발하여 데이터 세트를 사전 처리 한 다음 scikit-learn을 사용하여 일련의 기계 학습 모델을 생성합니다. 데이터 전처리 기능을 확인하기위한 unittest 세트를 개발하고 싶습니다. 작은 테스트 팬더 데이터 프레임을 사용하여 답변을 결정하고 assert 문에 사용할 수 있기를 바랍니다.단위 테스트에서 팬더 데이터 프레임을 사용하는 방법

데이터 프레임을로드하고 자체를 사용하여 단위 테스트에 전달할 수 없습니다. 내 코드는 다음과 같습니다.

def setUp(self): 
    TEST_INPUT_DIR = 'data/' 
    test_file_name = 'testdata.csv' 
    try: 
     data = pd.read_csv(INPUT_DIR + test_file_name, 
      sep = ',', 
      header = 0) 
    except IOError: 
     print 'cannot open file' 
    self.fixture = data 

def tearDown(self): 
    del self.fixture 

def test1(self):  
    self.assertEqual(somefunction(self.fixture), somevalue) 

if __name__ == '__main__': 
    unittest.main() 

도움 주셔서 감사합니다.

+1

"얻을 수 없다"는 것은 무엇을 의미합니까? 오류가 있습니까? 그렇다면 오류는 무엇입니까? 무엇을하고 싶습니까? 대신 무엇이 발생합니까? – BrenBarn

+0

오류가 발생하지 않습니다. 테스트에 넣은 모든 테스트가 성공적으로 실행됩니다. 내가 할 수 있기를 원하는 것은 판다 데이터 프레임을 조작하고 작은 테스트 데이터 프레임을 사용하여 동작을 확인하는 기능을 테스트하는 테스트를 작성하는 것입니다. – tjb305

+0

작동하지 않는 실제 데이터가 포함 된 실제 예제를 보여줘야합니다. – BrenBarn

답변

5

팬더에는 테스트를위한 유틸리티가 있습니다.

import unittest 
import pandas as pd 
from pandas.util.testing import assert_frame_equal # <-- for testing dataframes 

class DFTests(unittest.TestCase): 
""" class for running unittests """ 

def setUp(self): 
    """ Your setUp """ 
    TEST_INPUT_DIR = 'data/' 
    test_file_name = 'testdata.csv' 
    try: 
     data = pd.read_csv(INPUT_DIR + test_file_name, 
      sep = ',', 
      header = 0) 
    except IOError: 
     print 'cannot open file' 
    self.fixture = data 

def test_dataFrame_constrcutedAsExpected(self): 
    """ Test that the dataframe read in equals what you expect""" 
    foo = pd.DataFrame() 
    assert_frame_equal(self.fixture, foo) 
관련 문제