From c839b4c91f1c0d12c626375a405ef1209a7cf7ba Mon Sep 17 00:00:00 2001 From: KuanWang-Astro Date: Tue, 27 Nov 2018 15:29:02 -0500 Subject: [PATCH 1/2] completed class --- task-09/get_top_names.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/task-09/get_top_names.py b/task-09/get_top_names.py index cccd0ad..943993a 100644 --- a/task-09/get_top_names.py +++ b/task-09/get_top_names.py @@ -3,7 +3,7 @@ For astrophg/learning-by-doing: Task 9 https://github.com/astropgh/learning-by-doing/tree/master/task-09 """ - +import numpy as np import pandas as pd def extract_data_lines(filename, start_text, end_text, include_start=False, @@ -35,13 +35,12 @@ def __init__(self): def add(self, name, is_female, rank): if self.year is None: raise ValueError('One must set year first') - - # complete this member function - raise NotImplementedError + else: + self.records.append((self.year, 'female' if is_female else 'male', rank, name)) + def to_pandas(self): - # complete this member function - raise NotImplementedError + return pd.DataFrame.from_records(self.records, columns=['year', 'gender', 'rank', 'name']) def clear(self): self.records.clear() From d051ec8986290c9613c76f9ecd2f78e2e10b5f28 Mon Sep 17 00:00:00 2001 From: KuanWang-Astro Date: Tue, 27 Nov 2018 15:44:08 -0500 Subject: [PATCH 2/2] added to_sql --- task-09/get_top_names.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/task-09/get_top_names.py b/task-09/get_top_names.py index 943993a..cdc24c4 100644 --- a/task-09/get_top_names.py +++ b/task-09/get_top_names.py @@ -5,6 +5,7 @@ """ import numpy as np import pandas as pd +from sqlalchemy import create_engine def extract_data_lines(filename, start_text, end_text, include_start=False, include_end=False): @@ -42,6 +43,9 @@ def add(self, name, is_female, rank): def to_pandas(self): return pd.DataFrame.from_records(self.records, columns=['year', 'gender', 'rank', 'name']) + def to_sql(self,filename): + pd.DataFrame.from_records(self.records, columns=['year', 'gender', 'rank', 'name']).to_sql(filename,engine) + def clear(self): self.records.clear() self.year = None @@ -66,3 +70,7 @@ def clear(self): data = recorder.to_pandas() print(data.query('name == "Emma"').query('rank == 1')['year'].tolist()) + + engine = create_engine('sqlite://', echo=False) + recorder.to_sql('testsql') + print(engine.execute("SELECT * FROM testsql").fetchall()) \ No newline at end of file