def test_3_wrong_field_name(self): from datatable import DataTable data = DataTable("data.csv") with self.assertRaises(KeyError): next( data.find_n(3, where={ "Year": "2017", "Variable_cod": "H01", }))
def test_4_find_correct_value(self): import pandas as pd from datatable import DataTable my_data = DataTable("data.csv") my_result = [] for match in my_data.find_n(3, where={ "Year": "2017", "Variable_code": "H01" }): my_result.append(match[8]) real_data = pd.read_csv("data.csv") real_find = real_data[(real_data["Year"] == 2017) & (real_data["Variable_code"] == "H01")] real_result = list(real_find.iloc[:3]["Value"]) self.assertEqual(my_result, real_result)
def custom_datatable(): """ data_query_pandas 와 동일한 내용을, pandas같은 라이브러리를 사용하지 않고 직접 class 로 구현하려고 합니다. Task 2. DataTable 객체는 find_n 이라는 함수를 완성해 같은 결과가 나오도록 구현해 주세요. 구현이 완성된 DataTable 은 tests 에 명시된 단위테스트를 통과해야 합니다. (평가요소 : 가독성 + 메소드 성능 + 메모리 효율 ) :return: """ from datatable import DataTable data_table = DataTable("data.csv") res = [] for match in data_table.find_n(3, where={ "Year": "2017", "Variable_code": "H01", }): res.append(match[8]) return res