Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Back

HW 2

Description

Read lines from CSV files one a time incrementally updating column headers for each line.
Headers are either Nums or Syms as determined by the magic characters in row1.
Num and Syms incremental maintain knowledge about mean, standard deviation, and symbol counts in a column. <br/ > So when the table reads row1, it builds the headers of Nums and Syms. And when the other rows are read, the headers get updated.

Code up the domination counter (the dom function in Tbl which also uses dominate and dominate1 in Row

Test: Find and print the top and bottom ten rows of auto.csv, as sorted by their dom score. with the top 5 and the bottom 5 domination scores. That print out will look something like this (you dont’ need to emulate this, just get the same info):

Source Files

All source files are present in ./src/ directory

Col.py - Abstract Class for Column Type
Num.py - Class for numerical Columns (inherits Col)
Sym.py - Class for Symbolic Columns (inherits Col)
ID.py - Generates new ID each time
Row.py - Class to represent each Row. (needs Class Table)
Table.py - Class to represnt table. (uses CSV Reader from HW1 to read input file)

./data/ contains sample data files

Setup

Code has been tested on Python 2.7.12
It uses these packages: (os, sys, argparse, abc)

Usage

To run the code,

python src/Table.py <file_path>

The file path can be changed as required.
The source file Table.py requires code from HW1. It has been added in the path (using sys.path).
To ensure that it always runs, please run it from this (/HW2/) directory (using the same command above)

References

More details about the instructions can be found at Homeworks