Skip to content

Instantly share code, notes, and snippets.

@myrddian
Created September 15, 2019 13:59
Show Gist options
  • Save myrddian/4f9cad15b4fe8b29526e48db7f37705e to your computer and use it in GitHub Desktop.
Save myrddian/4f9cad15b4fe8b29526e48db7f37705e to your computer and use it in GitHub Desktop.
#Mock Classes that simulate a Pandas frame
class loc_class:
def __init__(self):
self.rows = []
self.csv_df = None
def add_row(self, item):
self.rows.append(item)
def __getitem__(self, key):
return self.rows[key]
class csv_data_frame:
def __init__(self):
self.size = 0
self.header = {}
self.reverse_key = {}
def generate_row_alias(self, row):
insert_key = {}
for key in self.reverse_key.keys():
insert_key[self.reverse_key[key]] = row[key]
return insert_key
def read_csv(self,filename):
self.loc = loc_class()
with open(filename,'rt')as f:
data = csv.reader(f)
row_val = 0
for row in data:
if row_val == 0 :
for i in range(len(row)):
self.header[row[i]] = []
self.reverse_key[i] = row[i]
else:
for i in range(len(row)):
header_key = self.reverse_key[i]
self.header[header_key].append(row[i])
self.loc.add_row(self.generate_row_alias(row))
row_val = row_val + 1
self.size = row_val
def __len__(self):
return self.size-1
def print_matrix(data):
for lin in data:
print("+---"*len(lin)+"+")
for inlin in lin:
print("|",str(inlin),"", end="")
print("|")
print("+---"*len(lin)+"+")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment