示例#1
0
    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",
                }))
示例#2
0
    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)
示例#3
0
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