├── .github └── workflows │ └── python-publish.yml ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── csvcli.py ├── ext ├── bad_input.csv ├── input.csv ├── input_base64.txt ├── large_input.csv └── nba-2017.csv ├── nlib ├── __init__.py ├── appliable.py ├── csvops.py └── utils.py ├── requirements.txt └── tests └── test_nlib.py /.github/workflows/python-publish.yml: -------------------------------------------------------------------------------- 1 | name: Python application test with Github Actions 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v2 12 | - name: Set up Python 3.8 13 | uses: actions/setup-python@v1 14 | with: 15 | python-version: 3.8 16 | - name: Install dependencies 17 | run: | 18 | make install 19 | - name: Lint with pylint 20 | run: | 21 | make lint 22 | - name: Test with pytest 23 | run: | 24 | make test 25 | - name: Format code 26 | run: | 27 | make format 28 | 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | 2 | install: 3 | pip install --upgrade pip &&\ 4 | pip install -r requirements.txt 5 | 6 | lint: 7 | pylint --disable=R,C nlib csvcli 8 | 9 | test: 10 | @cd tests; pytest -vv --cov-report term-missing --cov=nlib test_*.py 11 | 12 | format: 13 | black nlib/*.py csvcli.py tests/*.py -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Python application test with Github Actions](https://github.com/noahgift/python-data-engineering-cookbook/actions/workflows/python-publish.yml/badge.svg)](https://github.com/noahgift/python-data-engineering-cookbook/actions/workflows/python-publish.yml) 2 | 3 | 4 | # Python Data Engineering Cookbook 5 | Some recipes for data engineering with Python 6 | 7 | ![data-engineering-tool](https://user-images.githubusercontent.com/58792/112189504-752dcf80-8bda-11eb-8f1b-8993107236c7.png) 8 | 9 | 10 | ## Data Engineering CLI csvutil.py 11 | 12 | This is a "teaching" tool that shows how a library like Pandas, or potentially Spark can be combined to do operations on a data set. Different columns can be selected for "grouping" and different columns for "applying" and the "apply" itself can be any function you write. 13 | 14 | * Create a source a Python virtualenv 15 | ```python3 -m venv ~/.pyde && source ~/.pyde/bin/activate``` 16 | 17 | 18 | ### How to interact with Commandline tool (Click Framework): 19 | 20 | 21 | Check Version: 22 | 23 | ``` 24 | ./csvutil.py --version 25 | csvutil.py, version 0.1 26 | ``` 27 | 28 | Check Help: 29 | 30 | ``` 31 | ./csvutil.py --help 32 | Usage: csvutil.py [OPTIONS] COMMAND [ARGS]... 33 | 34 | CSV Operations Tool 35 | 36 | 37 | 38 | Options: 39 | --version Show the version and exit. 40 | --help Show this message and exit. 41 | ``` 42 | 43 | Aggregate CSV 44 | 45 | ``` 46 | ./csvcli.py cvsagg --file ext/input.csv --column last_name 47 | Processing csvfile: ext/input.csv and column name: last_name 48 | {"count":{"mcgregor":34,"lee":3,"norris":27}} 49 | ``` 50 | 51 | Note, a different files leads to different conclusions. Here is an NBA dataset where the AGE of players is grouped and then the sum of all three-pointers per game are summed by age. 52 | 53 | ``` 54 | ./csvcli.py cvsops --file ext/nba-2017.csv --groupby AGE --applyname 3P --func npsum 55 | Processing csvfile: ext/nba-2017.csv and groupby name: AGE and applyname: 3P 56 | 2021-03-22 12:51:50,628 - nlib.utils - INFO - Loading appliable functions/plugins: npmedian 57 | 2021-03-22 12:51:50,628 - nlib.utils - INFO - Loading appliable functions/plugins: npsum 58 | 2021-03-22 12:51:50,628 - nlib.utils - INFO - Loading appliable functions/plugins: numpy 59 | 2021-03-22 12:51:50,628 - nlib.utils - INFO - Loading appliable functions/plugins: tanimoto 60 | AGE 61 | 19 4.2 62 | 20 9.6 63 | 21 13.7 64 | 22 11.1 65 | 23 18.4 66 | 24 17.3 67 | 25 18.5 68 | 26 28.0 69 | 27 13.1 70 | 28 26.7 71 | 29 16.8 72 | 30 11.1 73 | 31 14.1 74 | 32 8.3 75 | 33 3.7 76 | 34 1.7 77 | 35 3.7 78 | 36 2.8 79 | 38 1.5 80 | 39 1.9 81 | 40 1.5 82 | Name: 3P, dtype: float64 83 | ``` 84 | 85 | Seperately, the AGE of the players can be used to generate a median wikipedia pageview by AGE. 86 | 87 | ``` 88 | ./csvcli.py cvsops --file ext/nba-2017.csv --groupby AGE --applyname PAGEVIEWS --func npmedian 89 | Processing csvfile: ext/nba-2017.csv and groupby name: AGE and applyname: PAGEVIEWS 90 | 2021-03-22 12:50:24,365 - nlib.utils - INFO - Loading appliable functions/plugins: npmedian 91 | 2021-03-22 12:50:24,365 - nlib.utils - INFO - Loading appliable functions/plugins: npsum 92 | 2021-03-22 12:50:24,365 - nlib.utils - INFO - Loading appliable functions/plugins: numpy 93 | 2021-03-22 12:50:24,365 - nlib.utils - INFO - Loading appliable functions/plugins: tanimoto 94 | AGE 95 | 19 453.00 96 | 20 456.50 97 | 21 334.50 98 | 22 187.50 99 | 23 271.25 100 | 24 368.50 101 | 25 182.75 102 | 26 547.50 103 | 27 189.00 104 | 28 368.25 105 | 29 169.50 106 | 30 131.25 107 | 31 427.00 108 | 32 315.00 109 | 33 267.50 110 | 34 489.50 111 | 35 685.50 112 | 36 416.00 113 | 38 2960.00 114 | 39 862.00 115 | 40 2891.50 116 | Name: PAGEVIEWS, dtype: float64 117 | ``` 118 | -------------------------------------------------------------------------------- /csvcli.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """ 3 | Commandline Tool For Doing CSV operations: 4 | """ 5 | 6 | import sys 7 | 8 | import click 9 | from sensible.loginit import logger 10 | 11 | import nlib 12 | from nlib import csvops 13 | from nlib import utils 14 | 15 | log = logger(__name__) 16 | 17 | 18 | @click.version_option(nlib.__version__) 19 | @click.group() 20 | def cli(): 21 | """CSV Operations Tool""" 22 | 23 | 24 | @cli.command("cvsops") 25 | @click.option("--file", help="Name of csv file") 26 | @click.option("--groupby", help="GroupBy Column Name") 27 | @click.option("--applyname", help="Apply Column Name") 28 | @click.option("--func", help="Appliable Function") 29 | def agg(file, groupby, applyname, func): 30 | """Operates on a groupby column in a csv file and applies a function 31 | 32 | Example Usage: 33 | ./csvcli.py cvsops --file ext/input.csv --groupby last_name --applyname count --func npmedian 34 | Processing csvfile: ext/input.csv and groupby name: last_name and applyname: count 35 | 2017-06-22 14:07:52,532 - nlib.utils - INFO - Loading appliable functions/plugins: npmedian 36 | 2017-06-22 14:07:52,533 - nlib.utils - INFO - Loading appliable functions/plugins: npsum 37 | 2017-06-22 14:07:52,533 - nlib.utils - INFO - Loading appliable functions/plugins: numpy 38 | 2017-06-22 14:07:52,533 - nlib.utils - INFO - Loading appliable functions/plugins: tanimoto 39 | last_name 40 | eagle 17.0 41 | lee 3.0 42 | smith 13.5 43 | Name: count, dtype: float64 44 | 45 | """ 46 | if not file and not groupby and not applyname and not func: 47 | click.echo("--file and --column and --applyname --func are required") 48 | sys.exit(1) 49 | 50 | click.echo( 51 | "Processing csvfile: {file} and groupby name: {groupby} and applyname: {applyname}".format( 52 | file=file, groupby=groupby, applyname=applyname 53 | ) 54 | ) 55 | # Load Plugins and grab correct one 56 | plugins = utils.plugins_map() 57 | appliable_func = plugins[func] 58 | res = csvops.group_by_operations( 59 | data=file, 60 | groupby_column_name=groupby, 61 | apply_column_name=applyname, 62 | func=appliable_func, 63 | ) 64 | click.echo(res) 65 | 66 | 67 | @cli.command("listfuncs") 68 | def listfuncs(): 69 | """Lists functions that can be applied to a GroupBy Operation 70 | 71 | Example Usage: 72 | 73 | ./csvcli.py listfuncs 74 | Appliable Functions: ['npmedian', 'npsum', 'numpy', 'tanimoto'] 75 | """ 76 | 77 | funcs = utils.appliable_functions() 78 | click.echo("Appliable Functions: {funcs}".format(funcs=funcs)) 79 | 80 | 81 | if __name__ == "__main__": 82 | cli() 83 | -------------------------------------------------------------------------------- /ext/bad_input.csv: -------------------------------------------------------------------------------- 1 | #This is intentionally malformed csv (missing comma) 2 | 3 | first_name last_name,count 4 | piers,smith,10 5 | kristen,smith,17 6 | john,lee,3 7 | sam,eagle,15 8 | john,eagle,19 -------------------------------------------------------------------------------- /ext/input.csv: -------------------------------------------------------------------------------- 1 | first_name,last_name,count 2 | piers,smith,10 3 | kristen,smith,17 4 | john,lee,3 5 | sam,eagle,15 6 | john,eagle,19 -------------------------------------------------------------------------------- /ext/input_base64.txt: -------------------------------------------------------------------------------- 1 | Zmlyc3RfbmFtZSxsYXN0X25hbWUsY291bnQKcGllcnMsc21pdGgsMTAKa3Jpc3Rl 2 | bixzbWl0aCwxNwpqb2huLGxlZSwzCnNhbSxlYWdsZSwxNQpqb2huLGVhZ2xlLDE5 3 | -------------------------------------------------------------------------------- /ext/large_input.csv: -------------------------------------------------------------------------------- 1 | first_name,last_name,count,random_column 2 | piers,smith,10,56 3 | kristen,smith,17,44 4 | john,lee,3,61 5 | sam,eagle,15,54 6 | john,eagle,19,3 -------------------------------------------------------------------------------- /ext/nba-2017.csv: -------------------------------------------------------------------------------- 1 | ,Rk,PLAYER,POSITION,AGE,MP,FG,FGA,FG%,3P,3PA,3P%,2P,2PA,2P%,eFG%,FT,FTA,FT%,ORB,DRB,TRB,AST,STL,BLK,TOV,PF,POINTS,TEAM,GP,MPG,ORPM,DRPM,RPM,WINS_RPM,PIE,PACE,W,SALARY_MILLIONS,PAGEVIEWS,TWITTER_FAVORITE_COUNT,TWITTER_RETWEET_COUNT 2 | 0,1,Russell Westbrook,PG,28,34.6,10.2,24.0,0.425,2.5,7.2,0.34299999999999997,7.7,16.8,0.45899999999999996,0.47600000000000003,8.8,10.4,0.845,1.7,9.0,10.7,10.4,1.6,0.4,5.4,2.3,31.6,OKC,81,34.6,6.74,-0.47,6.27,17.34,23.0,102.31,46,26.5,4279.0,2130.5,559.0 3 | 1,2,James Harden,PG,27,36.4,8.3,18.9,0.44,3.2,9.3,0.34700000000000003,5.1,9.6,0.53,0.525,9.2,10.9,0.847,1.2,7.0,8.1,11.2,1.5,0.5,5.7,2.7,29.1,HOU,81,36.4,6.38,-1.57,4.81,15.54,19.0,102.98,54,26.5,3279.0,969.0,321.5 4 | 2,4,Anthony Davis,C,23,36.1,10.3,20.3,0.505,0.5,1.8,0.299,9.7,18.6,0.524,0.518,6.9,8.6,0.802,2.3,9.5,11.8,2.1,1.3,2.2,2.4,2.2,28.0,NO,75,36.1,0.45,3.9,4.35,12.81,19.2,100.19,31,22.12,82.5,368.0,104.0 5 | 3,6,DeMarcus Cousins,C,26,34.2,9.0,19.9,0.452,1.8,5.0,0.361,7.2,14.8,0.483,0.498,7.2,9.3,0.772,2.1,8.9,11.0,4.6,1.4,1.3,3.7,3.9,27.0,NO/SAC,72,34.2,3.56,0.64,4.2,11.26,17.8,97.11,30,16.96,1625.5,102.0,91.5 6 | 4,7,Damian Lillard,PG,26,35.9,8.8,19.8,0.444,2.9,7.7,0.37,6.0,12.1,0.49200000000000005,0.516,6.5,7.3,0.895,0.6,4.3,4.9,5.9,0.9,0.3,2.6,2.0,27.0,POR,75,35.9,4.63,-1.49,3.14,10.72,15.9,99.68,38,24.33,1830.5,186.5,43.0 7 | 5,8,LeBron James,SF,32,37.8,9.9,18.2,0.5479999999999999,1.7,4.6,0.363,8.3,13.5,0.611,0.594,4.8,7.2,0.674,1.3,7.3,8.6,8.7,1.2,0.6,4.1,1.8,26.4,CLE,74,37.8,6.49,1.93,8.42,20.43,18.3,98.38,51,30.96,14704.0,5533.5,1501.5 8 | 6,9,Kawhi Leonard,SF,25,33.4,8.6,17.7,0.485,2.0,5.2,0.38,6.6,12.5,0.529,0.541,6.3,7.2,0.88,1.1,4.7,5.8,3.5,1.8,0.7,2.1,1.6,25.5,SA,74,33.4,5.83,1.25,7.08,15.53,17.4,95.79,54,17.64,2446.5,2701.5,716.5 9 | 7,10,Stephen Curry,PG,28,33.4,8.5,18.3,0.46799999999999997,4.1,10.0,0.41100000000000003,4.4,8.3,0.537,0.58,4.1,4.6,0.898,0.8,3.7,4.5,6.6,1.8,0.2,3.0,2.3,25.3,GS,79,33.4,7.27,0.14,7.41,18.8,15.1,105.08,65,12.11,17570.5,12278.0,2893.0 10 | 8,11,Kyrie Irving,PG,24,35.1,9.3,19.7,0.473,2.5,6.1,0.401,6.9,13.6,0.505,0.535,4.1,4.6,0.905,0.7,2.5,3.2,5.8,1.2,0.3,2.5,2.2,25.2,CLE,72,35.1,4.35,-2.3,2.05,8.28,13.5,99.12,47,17.64,4796.0,1541.0,695.0 11 | 9,12,Kevin Durant,SF,28,33.4,8.9,16.5,0.537,1.9,5.0,0.375,7.0,11.5,0.608,0.594,5.4,6.2,0.875,0.6,7.6,8.3,4.8,1.1,1.6,2.2,1.9,25.1,GS,62,33.4,4.41,1.33,5.74,12.24,18.6,103.71,51,26.5,6288.5,1425.5,366.0 12 | 10,13,Karl-Anthony Towns,C,21,37.0,9.8,18.0,0.542,1.2,3.4,0.36700000000000005,8.5,14.7,0.5820000000000001,0.5760000000000001,4.3,5.2,0.8320000000000001,3.6,8.7,12.3,2.7,0.7,1.3,2.6,2.9,25.1,MIN,82,37.0,3.54,-1.41,2.13,10.0,17.1,97.1,31,5.96,2046.5,0.0,105.0 13 | 11,14,Jimmy Butler,SF,27,37.0,7.5,16.5,0.455,1.2,3.3,0.36700000000000005,6.3,13.2,0.47700000000000004,0.49200000000000005,7.7,8.9,0.865,1.7,4.5,6.2,5.5,1.9,0.4,2.1,1.5,23.9,CHI,76,37.0,4.82,1.8,6.62,17.35,16.4,97.78,40,17.55,41.0,89.5,30.0 14 | 12,15,Paul George,SF,26,35.9,8.3,18.0,0.461,2.6,6.6,0.39299999999999996,5.7,11.4,0.501,0.534,4.5,5.0,0.898,0.8,5.8,6.6,3.3,1.6,0.4,2.9,2.7,23.7,IND,75,35.9,2.67,-0.09,2.58,9.72,13.6,98.13,39,18.31,1600.0,228.5,128.0 15 | 13,16,Andrew Wiggins,SF,21,37.2,8.6,19.1,0.452,1.3,3.5,0.35600000000000004,7.4,15.6,0.473,0.484,5.0,6.6,0.76,1.2,2.8,4.0,2.3,1.0,0.4,2.3,2.2,23.6,MIN,82,37.2,1.56,-3.16,-1.6,2.94,9.5,97.56,31,6.01,1778.5,182.0,54.5 16 | 14,17,Kemba Walker,PG,26,34.7,8.1,18.3,0.444,3.0,7.6,0.39899999999999997,5.1,10.7,0.47600000000000003,0.527,3.8,4.5,0.847,0.6,3.3,3.9,5.5,1.1,0.3,2.1,1.5,23.2,CHA,79,34.7,3.93,-1.25,2.68,9.95,13.7,98.19,36,12.0,640.5,59.5,32.5 17 | 15,18,Bradley Beal,SG,23,34.9,8.3,17.2,0.48200000000000004,2.9,7.2,0.40399999999999997,5.4,10.0,0.5379999999999999,0.5660000000000001,3.7,4.4,0.825,0.7,2.4,3.1,3.5,1.1,0.3,2.0,2.2,23.1,WSH,77,34.9,3.29,-1.04,2.25,9.26,11.9,100.11,48,22.12,413.5,55.5,40.5 18 | 16,19,John Wall,PG,26,36.4,8.3,18.4,0.451,1.1,3.5,0.327,7.2,14.9,0.48,0.48200000000000004,5.4,6.8,0.8009999999999999,0.8,3.4,4.2,10.7,2.0,0.6,4.1,1.9,23.1,WSH,78,36.4,3.52,-1.26,2.26,9.9,15.3,101.07,48,16.96,57.0,0.0,77.0 19 | 17,22,Carmelo Anthony,SF,32,34.3,8.1,18.8,0.433,2.0,5.7,0.359,6.1,13.1,0.466,0.488,4.1,4.9,0.833,0.8,5.1,5.9,2.9,0.8,0.5,2.1,2.7,22.4,NY,74,34.3,1.87,-1.75,0.12,5.26,11.8,98.48,29,24.56,3773.5,720.5,220.0 20 | 18,24,Klay Thompson,SG,26,34.0,8.3,17.6,0.46799999999999997,3.4,8.3,0.414,4.8,9.3,0.516,0.565,2.4,2.8,0.853,0.6,3.0,3.7,2.1,0.8,0.5,1.6,1.8,22.3,GS,78,34.0,2.78,-0.45,2.33,9.53,10.9,102.15,66,16.66,3708.0,797.0,225.0 21 | 19,25,Devin Booker,SG,20,35.0,7.8,18.3,0.423,1.9,5.2,0.363,5.9,13.2,0.447,0.475,4.7,5.7,0.8320000000000001,0.6,2.6,3.2,3.4,0.9,0.3,3.1,3.1,22.1,PHX,78,35.0,1.28,-2.58,-1.3,3.29,8.9,103.62,24,2.22,1210.5,1170.5,335.5 22 | 20,26,Gordon Hayward,SF,26,34.5,7.5,15.8,0.47100000000000003,2.0,5.1,0.39799999999999996,5.4,10.7,0.506,0.536,5.0,5.9,0.8440000000000001,0.7,4.7,5.4,3.5,1.0,0.3,1.9,1.6,21.9,UTAH,73,34.5,3.14,-0.08,3.06,9.45,15.8,93.44,46,16.07,689.0,319.0,50.5 23 | 21,27,Blake Griffin,PF,27,34.0,7.9,15.9,0.493,0.6,1.9,0.336,7.2,14.1,0.514,0.513,5.2,6.9,0.76,1.8,6.3,8.1,4.9,0.9,0.4,2.3,2.6,21.6,LAC,61,34.0,3.02,0.76,3.78,9.2,15.2,98.71,40,20.14,2257.0,269.0,98.5 24 | 22,28,Eric Bledsoe,PG,27,33.0,6.8,15.7,0.434,1.6,4.7,0.335,5.2,11.0,0.47700000000000004,0.485,5.9,6.9,0.847,0.8,4.1,4.8,6.3,1.4,0.5,3.4,2.5,21.1,PHX,66,33.0,2.33,-0.64,1.69,6.85,14.1,103.09,22,14.0,434.5,9.0,30.5 25 | 23,29,Mike Conley,PG,29,33.2,6.7,14.6,0.46,2.5,6.1,0.408,4.2,8.6,0.49700000000000005,0.545,4.6,5.3,0.8590000000000001,0.4,3.0,3.5,6.3,1.3,0.3,2.3,1.8,20.5,MEM,69,33.2,4.67,-0.2,4.47,10.5,16.0,94.64,35,26.54,11.0,257.5,90.0 26 | 24,31,Goran Dragic,PG,30,33.7,7.3,15.4,0.475,1.6,4.0,0.405,5.7,11.4,0.499,0.527,4.1,5.2,0.79,0.8,3.0,3.8,5.8,1.2,0.2,2.9,2.7,20.3,MIA,73,33.7,2.54,-1.62,0.92,6.3,13.0,98.16,40,15.89,19.0,62.5,45.0 27 | 25,32,Joel Embiid,C,22,25.4,6.5,13.8,0.466,1.2,3.2,0.36700000000000005,5.3,10.7,0.495,0.508,6.2,7.9,0.7829999999999999,2.0,5.9,7.8,2.1,0.9,2.5,3.8,3.6,20.2,PHI,31,25.4,-0.57,2.27,1.7,2.46,17.4,100.25,13,4.83,1075.5,6852.5,2941.0 28 | 26,33,Jabari Parker,PF,21,33.9,7.8,16.0,0.49,1.3,3.5,0.365,6.5,12.5,0.525,0.53,3.2,4.3,0.743,1.5,4.6,6.2,2.8,1.0,0.4,1.8,2.2,20.1,MIL,51,33.9,0.83,-1.61,-0.78,2.59,12.1,98.47,22,5.37,815.0,267.0,125.0 29 | 27,34,Marc Gasol,C,32,34.2,7.2,15.7,0.45899999999999996,1.4,3.6,0.38799999999999996,5.8,12.1,0.48,0.503,3.8,4.5,0.8370000000000001,0.8,5.5,6.3,4.6,0.9,1.3,2.2,2.3,19.5,MEM,74,34.2,1.86,0.72,2.58,8.69,15.1,94.43,40,21.17,825.0,0.0,75.5 30 | 28,36,Kevin Love,PF,28,31.4,6.2,14.5,0.42700000000000005,2.4,6.5,0.373,3.8,8.0,0.47100000000000003,0.51,4.3,4.9,0.871,2.5,8.6,11.1,1.9,0.9,0.4,2.0,2.1,19.0,CLE,60,31.4,2.77,2.26,5.03,9.76,14.8,99.66,40,21.17,2013.5,866.5,194.5 31 | 29,37,Zach LaVine,SG,21,37.2,6.9,15.1,0.45899999999999996,2.6,6.6,0.387,4.4,8.5,0.515,0.544,2.5,3.0,0.836,0.4,3.0,3.4,3.0,0.9,0.2,1.8,2.2,18.9,MIN,47,37.2,-0.62,-2.35,-2.97,0.17,9.5,96.38,16,2.24,1103.0,178.5,67.0 32 | 30,39,Dwyane Wade,SG,35,29.9,6.9,15.9,0.434,0.8,2.4,0.31,6.2,13.5,0.456,0.457,3.7,4.7,0.794,1.1,3.5,4.5,3.8,1.4,0.7,2.3,1.9,18.3,CHI,60,29.9,-0.45,-0.46,-0.91,2.52,12.1,98.2,29,23.2,4671.0,349.5,149.5 33 | 31,40,Danilo Gallinari,SF,28,33.9,5.3,11.9,0.447,2.0,5.1,0.389,3.3,6.8,0.491,0.531,5.5,6.1,0.902,0.6,4.5,5.2,2.1,0.6,0.2,1.3,1.5,18.2,DEN,63,33.9,2.67,0.21,2.88,8.39,11.4,100.53,31,15.05,350.0,29.0,6.0 34 | 32,41,Paul Millsap,PF,31,34.0,6.2,14.1,0.442,1.1,3.5,0.311,5.1,10.6,0.486,0.48100000000000004,4.5,5.9,0.768,1.6,6.1,7.7,3.7,1.3,0.9,2.3,2.7,18.1,ATL,69,34.0,1.23,3.35,4.58,11.51,12.6,100.22,40,20.07,436.5,60.0,32.0 35 | 33,42,Chris Paul,PG,31,31.5,6.1,12.9,0.47600000000000003,2.0,5.0,0.41100000000000003,4.1,7.9,0.518,0.555,3.8,4.3,0.892,0.7,4.3,5.0,9.2,2.0,0.1,2.4,2.4,18.1,LAC,61,31.5,5.16,2.76,7.92,13.48,18.2,98.19,43,22.87,2689.5,829.0,178.5 36 | 34,43,Kristaps Porzingis,PF,21,32.8,6.7,14.9,0.45,1.7,4.8,0.35700000000000004,5.0,10.2,0.493,0.507,3.0,3.8,0.7859999999999999,1.7,5.5,7.2,1.5,0.7,2.0,1.8,3.7,18.1,NY,66,32.8,-0.31,1.9,1.59,6.54,10.6,99.15,26,4.32,20.0,485.0,214.0 37 | 35,44,Derrick Rose,PG,28,32.5,7.2,15.3,0.47100000000000003,0.2,0.9,0.217,7.0,14.3,0.48700000000000004,0.47700000000000004,3.5,4.0,0.8740000000000001,1.0,2.8,3.8,4.4,0.7,0.3,2.3,1.3,18.0,NY,64,32.5,0.11,-2.36,-2.25,1.17,11.2,99.19,26,21.32,3273.5,1864.0,2504.5 38 | 36,45,Dennis Schroder,PG,23,31.5,6.9,15.4,0.451,1.3,3.7,0.34,5.7,11.6,0.48700000000000004,0.493,2.8,3.2,0.855,0.5,2.6,3.1,6.3,0.9,0.2,3.3,1.9,17.9,ATL,79,31.5,0.31,-2.76,-2.45,1.07,11.7,100.32,42,2.71,2.0,51.5,20.0 39 | 37,47,LaMarcus Aldridge,PF,31,32.4,6.9,14.6,0.47700000000000004,0.3,0.8,0.41100000000000003,6.6,13.8,0.48,0.488,3.1,3.8,0.812,2.4,4.9,7.3,1.9,0.6,1.2,1.4,2.2,17.3,SA,72,32.4,-0.09,1.05,0.96,5.79,12.2,94.47,52,20.58,958.0,195.0,63.0 40 | 38,48,Evan Fournier,SG,24,32.9,6.0,13.7,0.439,1.9,5.3,0.35600000000000004,4.1,8.4,0.491,0.508,3.3,4.1,0.805,0.6,2.4,3.1,3.0,1.0,0.1,2.1,2.6,17.2,ORL,68,32.9,0.07,-1.17,-1.1,2.89,8.5,99.6,23,17.0,253.5,21.0,10.0 41 | 39,50,George Hill,PG,30,31.5,5.9,12.4,0.47700000000000004,1.9,4.8,0.40299999999999997,4.0,7.6,0.523,0.5539999999999999,3.2,4.0,0.8009999999999999,0.5,2.9,3.4,4.2,1.0,0.2,1.7,2.3,16.9,UTAH,49,31.5,2.64,1.11,3.75,6.28,12.8,92.9,33,8.0,12.0,33.5,3.0 42 | 40,51,Nikola Jokic,C,21,27.9,6.8,11.7,0.578,0.6,1.9,0.324,6.2,9.8,0.628,0.605,2.6,3.1,0.825,2.9,6.9,9.8,4.9,0.8,0.8,2.3,2.9,16.7,DEN,73,27.9,4.44,2.29,6.73,13.18,16.7,100.76,37,1.36,8.0,0.0,1.0 43 | 41,53,Eric Gordon,SG,28,31.0,5.5,13.5,0.406,3.3,8.8,0.37200000000000005,2.2,4.7,0.46799999999999997,0.527,2.0,2.3,0.84,0.4,2.3,2.7,2.5,0.6,0.5,1.6,2.0,16.2,HOU,75,31.0,1.51,-0.48,1.03,6.36,8.2,103.07,50,12.39,346.0,55.0,26.0 44 | 42,54,Tobias Harris,PF,24,31.3,6.2,13.0,0.48100000000000004,1.3,3.8,0.34700000000000003,4.9,9.1,0.537,0.532,2.3,2.8,0.841,0.8,4.3,5.1,1.7,0.7,0.5,1.2,1.6,16.1,DET,82,31.3,1.19,-0.25,0.94,6.55,11.3,97.41,37,17.2,327.0,2.0,4.0 45 | 43,55,Victor Oladipo,SG,24,33.2,6.1,13.9,0.442,1.9,5.3,0.361,4.3,8.7,0.491,0.51,1.7,2.3,0.753,0.6,3.8,4.3,2.6,1.2,0.3,1.8,2.3,15.9,OKC,67,33.2,0.1,1.56,1.66,6.88,9.5,101.1,39,6.55,715.0,78.0,28.0 46 | 44,56,Dion Waiters,SG,25,30.1,6.1,14.4,0.424,1.8,4.7,0.395,4.3,9.7,0.43799999999999994,0.488,1.8,2.8,0.6459999999999999,0.4,2.9,3.3,4.3,0.9,0.4,2.2,2.1,15.8,MIA,46,30.1,0.12,-0.07,0.05,2.8,10.0,98.03,27,2.9,512.0,0.0,7.0 47 | 45,57,Wilson Chandler,SF,29,30.9,6.1,13.2,0.461,1.5,4.6,0.337,4.5,8.6,0.527,0.52,2.0,2.7,0.727,1.5,5.0,6.5,2.0,0.7,0.4,1.6,2.4,15.7,DEN,71,30.9,0.3,-1.54,-1.24,2.69,9.8,100.43,35,11.23,166.0,31.5,18.5 48 | 46,58,D'Angelo Russell,PG,20,28.7,5.6,13.8,0.405,2.1,6.1,0.35200000000000004,3.4,7.7,0.447,0.483,2.3,3.0,0.782,0.5,3.0,3.5,4.8,1.4,0.3,2.8,2.1,15.6,LAL,63,28.7,0.75,-2.45,-1.7,1.69,9.9,100.87,21,5.33,1327.0,0.0,232.0 49 | 47,59,Jrue Holiday,PG,26,32.7,6.0,13.3,0.45399999999999996,1.5,4.2,0.35600000000000004,4.6,9.1,0.498,0.51,1.8,2.5,0.708,0.7,3.3,3.9,7.3,1.5,0.7,2.9,2.0,15.4,NO,67,32.7,0.64,1.18,1.82,6.89,12.1,100.12,32,11.29,547.5,0.0,39.0 50 | 48,60,Jeff Teague,PG,28,32.4,4.9,11.1,0.442,1.1,3.1,0.35700000000000004,3.8,8.0,0.475,0.49200000000000005,4.4,5.1,0.867,0.4,3.6,4.0,7.8,1.2,0.4,2.6,2.0,15.3,IND,82,32.4,1.86,-0.22,1.64,8.08,13.1,98.98,42,8.8,12.0,17.5,13.5 51 | 49,61,Nicolas Batum,SG,28,34.0,5.1,12.7,0.40299999999999997,1.8,5.3,0.33299999999999996,3.4,7.4,0.45299999999999996,0.47200000000000003,3.2,3.7,0.856,0.6,5.6,6.2,5.9,1.1,0.4,2.5,1.4,15.1,CHA,77,34.0,1.3,-0.35,0.95,6.73,11.8,98.76,35,20.87,374.5,114.5,66.0 52 | 50,63,Gary Harris,SG,22,31.3,5.6,11.2,0.502,1.9,4.5,0.42,3.7,6.7,0.5579999999999999,0.586,1.8,2.4,0.7759999999999999,0.8,2.3,3.1,2.9,1.2,0.1,1.3,1.6,14.9,DEN,57,31.3,2.88,-2.37,0.51,4.29,9.1,100.41,29,1.66,187.5,6.0,2.5 53 | 51,65,Jordan Clarkson,SG,24,29.2,5.8,13.1,0.445,1.4,4.3,0.32899999999999996,4.4,8.7,0.503,0.5,1.6,2.0,0.7979999999999999,0.6,2.4,3.0,2.6,1.1,0.1,2.0,1.8,14.7,LAL,82,29.2,-0.63,-3.39,-4.02,-1.4,8.4,101.34,26,12.5,1386.5,55.5,179.5 54 | 52,66,Khris Middleton,SF,25,30.7,5.2,11.5,0.45,1.6,3.6,0.433,3.6,7.9,0.45899999999999996,0.518,2.8,3.2,0.88,0.4,3.9,4.2,3.4,1.4,0.2,2.2,2.7,14.7,MIL,29,30.7,0.14,1.26,1.4,2.44,10.4,94.63,19,15.2,255.5,16.0,9.0 55 | 53,67,Nikola Vucevic,C,26,28.8,6.4,13.7,0.46799999999999997,0.3,1.0,0.307,6.1,12.7,0.48100000000000004,0.48,1.4,2.1,0.669,2.3,8.0,10.4,2.8,1.0,1.0,1.6,2.4,14.6,ORL,75,28.8,-1.38,2.15,0.77,5.44,14.2,100.74,27,11.75,10.0,5.5,35.5 56 | 54,70,Jeremy Lin,PG,28,24.5,4.9,11.1,0.43799999999999994,1.6,4.3,0.37200000000000005,3.3,6.8,0.48,0.51,3.2,3.9,0.816,0.3,3.4,3.8,5.1,1.2,0.4,2.4,2.2,14.5,BKN,36,24.5,0.48,-0.03,0.45,2.21,13.1,106.86,13,11.48,3147.0,936.5,197.5 57 | 55,71,Myles Turner,C,20,31.4,5.5,10.7,0.511,0.5,1.4,0.348,5.0,9.3,0.536,0.534,3.0,3.7,0.809,1.7,5.6,7.3,1.3,0.9,2.1,1.3,3.2,14.5,IND,81,31.4,0.09,2.57,2.66,9.31,11.2,98.5,42,2.46,10.0,53.0,31.0 58 | 56,73,Enes Kanter,C,24,21.3,5.6,10.2,0.545,0.1,0.5,0.132,5.5,9.7,0.568,0.5489999999999999,3.1,4.0,0.7859999999999999,2.7,4.0,6.7,0.9,0.4,0.5,1.7,2.1,14.3,OKC,72,21.3,0.56,-1.24,-0.68,2.4,15.4,99.17,43,17.15,713.0,147.0,195.0 59 | 57,74,Dirk Nowitzki,PF,38,26.4,5.5,12.6,0.43700000000000006,1.5,3.9,0.37799999999999995,4.0,8.7,0.46299999999999997,0.495,1.8,2.1,0.875,0.4,6.1,6.5,1.5,0.6,0.7,0.9,2.1,14.2,DAL,54,26.4,-0.38,0.64,0.26,3.02,12.4,96.06,23,25.0,2960.0,1564.0,500.5 60 | 58,76,Zach Randolph,PF,35,24.5,5.9,13.2,0.449,0.3,1.3,0.223,5.6,11.9,0.474,0.46,1.9,2.6,0.731,2.5,5.7,8.2,1.7,0.5,0.1,1.4,1.9,14.1,MEM,73,24.5,-0.37,-1.05,-1.42,1.83,15.2,94.36,38,10.36,528.5,47.0,18.5 61 | 59,77,Rudy Gobert,C,24,33.9,5.1,7.7,0.6609999999999999,0.0,0.0,0.0,5.1,7.7,0.662,0.6609999999999999,3.8,5.9,0.653,3.9,8.9,12.8,1.2,0.6,2.6,1.8,3.0,14.0,UTAH,81,33.9,0.35,6.02,6.37,15.55,16.1,93.11,51,2.12,368.5,731.0,225.5 62 | 60,78,Al Horford,C,30,32.3,5.6,11.8,0.473,1.3,3.6,0.355,4.3,8.2,0.524,0.527,1.6,2.0,0.8,1.4,5.4,6.8,5.0,0.8,1.3,1.7,2.0,14.0,BOS,68,32.3,0.76,1.06,1.82,6.93,12.5,98.96,46,26.54,870.0,136.0,71.0 63 | 61,79,Marcus Morris,SF,27,32.5,5.3,12.7,0.418,1.5,4.5,0.331,3.8,8.2,0.466,0.47700000000000004,1.8,2.3,0.784,1.0,3.7,4.6,2.0,0.7,0.3,1.1,2.1,14.0,DET,79,32.5,-0.11,0.63,0.52,5.85,8.0,97.01,36,4.62,5.5,6.0,23.0 64 | 62,80,Markieff Morris,PF,27,31.2,5.3,11.7,0.457,0.9,2.6,0.36200000000000004,4.4,9.1,0.483,0.49700000000000005,2.4,2.8,0.8370000000000001,1.4,5.1,6.5,1.7,1.1,0.6,1.7,3.3,14.0,WSH,76,31.2,-0.55,2.41,1.86,7.61,8.9,100.12,45,7.4,331.5,9.0,18.0 65 | 63,81,Jae Crowder,SF,26,32.4,4.6,10.0,0.46299999999999997,2.2,5.5,0.39799999999999996,2.4,4.5,0.54,0.5720000000000001,2.4,3.0,0.8109999999999999,0.7,5.1,5.8,2.2,1.0,0.3,1.1,2.2,13.9,BOS,72,32.4,2.2,1.69,3.89,10.52,10.3,99.94,48,6.29,438.5,55.0,47.0 66 | 64,82,Kentavious Caldwell-Pope,SG,23,33.3,4.9,12.2,0.39899999999999997,2.0,5.8,0.35,2.9,6.5,0.442,0.48100000000000004,2.0,2.4,0.8320000000000001,0.7,2.5,3.3,2.5,1.2,0.2,1.1,1.6,13.8,DET,76,33.3,0.71,-1.31,-0.6,4.02,7.8,97.61,33,3.68,223.5,9.0,10.0 67 | 65,83,Will Barton,SG,26,28.4,4.9,11.1,0.44299999999999995,1.5,3.9,0.37,3.5,7.2,0.483,0.508,2.4,3.2,0.753,1.0,3.4,4.3,3.4,0.8,0.5,1.6,1.8,13.7,DEN,60,28.4,0.05,-1.2,-1.15,2.2,10.2,100.14,31,3.53,190.0,1.0,3.0 68 | 66,85,Tyler Johnson,PG,24,29.8,4.9,11.3,0.433,1.3,3.4,0.37200000000000005,3.6,7.9,0.46,0.49,2.7,3.5,0.768,0.7,3.3,4.0,3.2,1.2,0.6,1.2,2.4,13.7,MIA,73,29.8,0.13,0.18,0.31,4.72,10.8,98.21,35,5.63,11.0,3.0,6.0 69 | 67,88,Dwight Howard,C,31,29.7,5.2,8.3,0.633,0.0,0.0,0.0,5.2,8.3,0.635,0.633,3.1,5.7,0.5329999999999999,4.0,8.7,12.7,1.4,0.9,1.2,2.3,2.7,13.5,ATL,74,29.7,-1.7,2.6,0.9,5.65,15.1,99.8,37,23.18,2558.5,7.0,1.0 70 | 68,91,Darren Collison,PG,29,30.3,5.0,10.5,0.47600000000000003,1.1,2.6,0.41700000000000004,3.9,7.9,0.495,0.527,2.2,2.5,0.86,0.3,1.9,2.2,4.6,1.0,0.1,1.7,1.8,13.2,SAC,68,30.3,1.06,-1.47,-0.41,3.44,10.0,96.23,26,5.23,295.0,4.0,7.0 71 | 69,92,Julius Randle,PF,22,28.8,5.1,10.4,0.488,0.2,0.9,0.27,4.9,9.6,0.507,0.499,2.8,3.8,0.723,2.0,6.6,8.6,3.6,0.7,0.5,2.3,3.4,13.2,LAL,74,28.8,-0.79,-1.03,-1.82,1.83,11.3,100.9,24,3.27,519.0,102.0,59.0 72 | 70,93,Nick Young,SG,31,25.9,4.5,10.6,0.43,2.8,7.0,0.40399999999999997,1.7,3.5,0.48100000000000004,0.564,1.3,1.5,0.856,0.4,1.9,2.3,1.0,0.6,0.2,0.6,2.3,13.2,LAL,60,25.9,2.28,-1.63,0.65,3.82,7.5,100.59,19,5.44,27.0,45.5,14.0 73 | 71,99,Elfrid Payton,PG,22,29.4,5.2,11.1,0.47100000000000003,0.5,1.8,0.27399999999999997,4.8,9.3,0.509,0.493,1.8,2.6,0.6920000000000001,1.1,3.6,4.7,6.5,1.1,0.5,2.2,2.2,12.8,ORL,82,29.4,1.12,-0.78,0.34,5.38,11.7,100.23,29,2.61,4.0,19.0,8.0 74 | 72,101,Aaron Gordon,SF,21,28.7,4.9,10.8,0.45399999999999996,1.0,3.3,0.28800000000000003,4.0,7.5,0.528,0.499,2.0,2.7,0.7190000000000001,1.5,3.6,5.1,1.9,0.8,0.5,1.1,2.2,12.7,ORL,80,28.7,1.25,-0.78,0.47,5.32,8.8,99.7,29,4.35,666.0,42.5,16.0 75 | 73,105,Pau Gasol,C,36,25.4,4.7,9.4,0.502,0.9,1.6,0.5379999999999999,3.9,7.8,0.494,0.5479999999999999,2.0,2.9,0.7070000000000001,1.7,6.2,7.8,2.3,0.4,1.1,1.3,1.7,12.4,SA,64,25.4,0.86,1.49,2.35,5.48,14.3,95.48,47,15.5,1983.5,882.5,148.5 76 | 74,106,Jamal Crawford,SG,36,26.3,4.4,10.6,0.413,1.4,3.9,0.36,3.0,6.7,0.44299999999999995,0.479,2.1,2.5,0.857,0.2,1.4,1.6,2.6,0.7,0.2,1.6,1.4,12.3,LAC,82,26.3,-0.06,-3.18,-3.24,-0.16,7.9,98.53,51,13.25,1010.0,49.0,32.0 77 | 75,107,Austin Rivers,SG,24,27.8,4.4,9.9,0.442,1.5,4.0,0.371,2.9,5.8,0.491,0.518,1.8,2.6,0.691,0.3,1.9,2.2,2.8,0.6,0.1,1.6,2.5,12.0,LAC,74,27.8,-0.17,-1.73,-1.9,1.62,6.9,98.18,43,11.0,525.0,75.5,23.0 78 | 76,108,Jonas Valanciunas,C,24,25.8,4.9,8.8,0.557,0.0,0.0,0.5,4.9,8.8,0.557,0.5579999999999999,2.2,2.7,0.8109999999999999,2.8,6.7,9.5,0.7,0.5,0.8,1.3,2.7,12.0,TOR,80,25.8,-0.74,0.75,0.01,4.06,13.6,96.61,50,14.38,6.0,65.0,40.0 79 | 77,110,Trevor Ariza,SF,31,34.7,4.1,10.0,0.409,2.4,6.9,0.344,1.7,3.0,0.556,0.528,1.2,1.6,0.738,0.7,5.1,5.7,2.2,1.8,0.3,0.9,1.7,11.7,HOU,80,34.7,0.86,1.07,1.93,9.29,8.5,102.78,53,7.81,417.5,10.0,15.0 80 | 78,111,Frank Kaminsky,C,23,26.1,4.3,10.7,0.39899999999999997,1.5,4.7,0.32799999999999996,2.7,6.0,0.455,0.47100000000000003,1.6,2.1,0.7559999999999999,0.8,3.7,4.5,2.2,0.6,0.5,1.0,1.9,11.7,CHA,75,26.1,0.96,-0.51,0.45,4.4,8.5,98.15,31,2.73,517.0,112.5,29.0 81 | 79,112,Greg Monroe,C,26,22.5,4.8,9.0,0.5329999999999999,0.0,0.0,0.0,4.8,8.9,0.536,0.5329999999999999,2.2,3.0,0.741,2.1,4.5,6.6,2.3,1.1,0.5,1.7,2.1,11.7,MIL,81,22.5,1.08,0.47,1.55,5.34,13.9,96.98,42,17.15,271.0,9.0,7.0 82 | 80,113,Steven Adams,C,23,29.9,4.7,8.2,0.5710000000000001,0.0,0.0,0.0,4.7,8.2,0.5720000000000001,0.5710000000000001,2.0,3.2,0.611,3.5,4.2,7.7,1.1,1.1,1.0,1.8,2.4,11.3,OKC,80,29.9,-0.3,1.68,1.38,7.01,9.7,101.16,47,3.14,1132.0,36.0,99.0 83 | 81,115,Ricky Rubio,PG,26,32.9,3.5,8.7,0.402,0.8,2.6,0.306,2.7,6.1,0.44299999999999995,0.44799999999999995,3.4,3.8,0.8909999999999999,0.9,3.2,4.1,9.1,1.7,0.1,2.6,2.7,11.1,MIN,75,32.9,1.73,0.76,2.49,8.72,11.4,97.07,28,13.55,763.0,262.5,76.0 84 | 82,116,Jerryd Bayless,PG,28,23.7,3.7,10.7,0.344,0.7,1.7,0.4,3.0,9.0,0.33299999999999996,0.375,3.0,3.3,0.9,1.0,3.0,4.0,4.3,0.0,0.0,3.0,1.3,11.0,PHI,3,23.7,-2.23,-0.47,-2.7,0.02,9.7,97.84,1,9.42,188.0,2.0,5.0 85 | 83,119,Emmanuel Mudiay,PG,20,25.6,3.8,10.0,0.377,1.0,3.2,0.315,2.8,6.8,0.408,0.428,2.4,3.0,0.784,0.5,2.7,3.2,3.9,0.7,0.2,2.2,1.7,11.0,DEN,55,25.6,-1.52,-2.38,-3.9,-0.71,7.4,101.93,25,3.24,545.0,69.0,21.0 86 | 84,120,Terrence Ross,SF,25,25.1,4.2,9.6,0.43700000000000006,1.8,5.0,0.363,2.4,4.6,0.518,0.532,0.8,1.0,0.831,0.2,2.4,2.6,1.1,1.1,0.4,0.9,1.8,11.0,ORL/TOR,78,25.1,1.36,-1.23,0.13,4.06,7.8,99.82,39,10.0,446.5,0.0,0.0 87 | 85,122,Thaddeus Young,PF,28,30.2,4.9,9.3,0.527,0.6,1.6,0.381,4.3,7.7,0.557,0.56,0.6,1.2,0.523,1.8,4.3,6.1,1.6,1.5,0.4,1.3,1.8,11.0,IND,74,30.2,-1.09,1.94,0.85,5.66,9.7,98.97,40,14.15,269.0,0.0,1.5 88 | 86,123,J.J. Barea,PG,32,22.0,4.1,9.8,0.414,1.5,4.2,0.358,2.5,5.6,0.456,0.491,1.3,1.5,0.863,0.3,2.1,2.4,5.5,0.4,0.0,1.8,0.9,10.9,DAL,35,22.0,0.15,-1.57,-1.42,0.8,13.4,95.14,11,4.1,5.0,0.0,17.5 89 | 87,124,Justise Winslow,SF,20,34.7,4.4,12.5,0.35600000000000004,0.4,1.9,0.2,4.1,10.6,0.384,0.371,1.6,2.6,0.617,1.3,3.9,5.2,3.7,1.4,0.3,1.8,2.9,10.9,MIA,18,34.7,-4.08,0.16,-3.92,-0.31,5.9,97.53,4,2.59,573.0,88.5,33.5 90 | 88,125,Taj Gibson,PF,31,25.5,4.7,9.1,0.515,0.0,0.2,0.231,4.6,8.9,0.52,0.517,1.4,2.0,0.715,2.0,4.2,6.2,0.9,0.5,0.8,1.3,2.1,10.8,CHI/OKC,78,25.5,-1.76,2.02,0.26,4.29,9.7,98.39,41,8.95,231.0,52.0,17.0 91 | 89,126,Marcin Gortat,C,32,31.2,4.8,8.2,0.579,0.0,0.0,0.0,4.8,8.2,0.58,0.579,1.3,1.9,0.648,2.9,7.5,10.4,1.5,0.5,0.7,1.5,2.6,10.8,WSH,82,31.2,-1.25,1.18,-0.07,5.01,10.9,99.85,49,12.0,315.0,1.0,1.0 92 | 90,128,Courtney Lee,SG,31,31.9,4.2,9.1,0.456,1.4,3.5,0.401,2.8,5.6,0.49,0.5329999999999999,1.1,1.3,0.867,0.7,2.7,3.4,2.3,1.1,0.3,0.9,1.8,10.8,NY,77,31.9,0.58,-1.51,-0.93,3.4,7.7,97.86,29,11.24,337.5,2.0,1.0 93 | 91,129,Allen Crabbe,SG,24,28.5,3.8,8.2,0.46799999999999997,1.7,3.8,0.444,2.1,4.4,0.49,0.5720000000000001,1.3,1.6,0.847,0.2,2.6,2.9,1.2,0.7,0.3,0.8,2.2,10.7,POR,79,28.5,0.22,-2.87,-2.65,0.68,7.4,99.95,39,18.5,193.5,11.5,9.0 94 | 92,132,Buddy Hield,SG,23,23.0,4.0,9.4,0.426,1.8,4.6,0.391,2.2,4.7,0.461,0.523,0.8,0.9,0.8420000000000001,0.4,2.9,3.3,1.5,0.5,0.1,1.2,1.4,10.6,NO/SAC,82,23.0,-0.92,-2.28,-3.2,-0.09,8.4,98.9,31,3.52,811.5,512.0,333.0 95 | 93,133,Nikola Mirotic,PF,25,24.0,3.7,8.9,0.413,1.8,5.4,0.342,1.8,3.5,0.52,0.516,1.4,1.8,0.773,0.9,4.6,5.5,1.1,0.8,0.8,1.1,1.8,10.6,CHI,70,24.0,0.92,1.31,2.23,5.69,10.4,97.95,37,5.78,5.0,119.0,50.5 96 | 94,134,Marcus Smart,SG,22,30.4,3.4,9.5,0.359,1.2,4.2,0.28300000000000003,2.2,5.3,0.42,0.42200000000000004,2.6,3.2,0.812,1.0,2.9,3.9,4.6,1.6,0.4,2.0,2.4,10.6,BOS,79,30.4,0.26,0.49,0.75,5.98,8.1,100.29,51,3.58,399.5,1.0,9.0 97 | 95,135,Marco Belinelli,SG,30,24.0,3.6,8.3,0.429,1.4,3.8,0.36,2.2,4.5,0.488,0.512,2.0,2.3,0.893,0.2,2.2,2.4,2.0,0.6,0.1,0.9,1.2,10.5,CHA,74,24.0,0.67,-1.87,-1.2,2.15,8.8,97.98,34,6.33,282.5,0.0,15.0 98 | 96,136,Wayne Ellington,SG,29,24.2,3.7,9.0,0.41600000000000004,2.4,6.4,0.37799999999999995,1.3,2.6,0.509,0.55,0.6,0.7,0.86,0.3,1.8,2.1,1.1,0.6,0.1,0.5,1.1,10.5,MIA,62,24.2,2.26,-1.6,0.66,3.58,8.2,97.3,35,6.0,204.0,18.0,12.0 99 | 97,139,Tyreke Evans,SF,27,19.7,3.8,9.3,0.405,1.1,3.0,0.35600000000000004,2.7,6.3,0.429,0.462,1.7,2.3,0.75,0.3,3.1,3.4,3.1,0.9,0.2,1.5,1.5,10.3,NO/SAC,40,19.7,-1.52,0.02,-1.5,0.81,11.8,98.53,17,10.2,701.0,6.0,9.0 100 | 98,140,Cody Zeller,PF,24,27.8,4.1,7.1,0.5710000000000001,0.0,0.0,0.0,4.1,7.1,0.5720000000000001,0.5710000000000001,2.1,3.2,0.679,2.2,4.4,6.5,1.6,1.0,0.9,1.0,3.0,10.3,CHA,62,27.8,-0.07,3.42,3.35,6.97,9.6,97.57,33,5.32,376.5,90.0,29.0 101 | 99,142,Draymond Green,PF,26,32.5,3.6,8.6,0.418,1.1,3.5,0.308,2.5,5.1,0.494,0.48100000000000004,2.0,2.8,0.7090000000000001,1.3,6.6,7.9,7.0,2.0,1.4,2.4,2.9,10.2,GS,76,32.5,1.55,5.59,7.14,16.84,11.7,103.34,62,15.33,2946.0,627.0,168.5 102 | 100,144,Jusuf Nurkic,C,22,21.4,4.2,8.2,0.507,0.0,0.0,0.0,4.2,8.2,0.508,0.507,1.8,3.2,0.5710000000000001,2.4,4.8,7.2,1.9,0.8,1.1,2.2,2.5,10.2,DEN/POR,65,21.4,-2.11,2.73,0.62,3.32,11.7,100.65,34,1.92,3.0,45.0,43.5 103 | 101,145,Josh Richardson,SG,23,30.5,3.8,9.7,0.39399999999999996,1.4,4.3,0.33,2.4,5.4,0.444,0.467,1.1,1.5,0.779,0.7,2.5,3.2,2.6,1.1,0.7,1.2,2.5,10.2,MIA,53,30.5,-1.63,0.06,-1.57,1.57,6.9,97.52,23,1.47,192.0,42.0,10.0 104 | 102,146,Kyle Korver,SG,35,26.2,3.6,7.7,0.46399999999999997,2.4,5.4,0.451,1.1,2.3,0.494,0.621,0.6,0.6,0.905,0.1,2.7,2.8,1.6,0.5,0.3,1.0,1.6,10.1,ATL/CLE,67,26.2,-0.15,-2.61,-2.76,0.41,8.1,100.0,33,5.24,842.5,107.5,30.5 105 | 103,148,Trevor Booker,PF,29,24.7,4.3,8.3,0.516,0.4,1.1,0.321,3.9,7.2,0.546,0.537,1.0,1.5,0.6729999999999999,2.0,6.0,8.0,1.9,1.1,0.4,1.8,2.1,10.0,BKN,71,24.7,-2.29,2.0,-0.29,3.3,12.7,103.12,18,9.25,160.5,16.5,8.0 106 | 104,151,Maurice Harkless,SF,23,28.9,4.1,8.1,0.503,0.9,2.5,0.35100000000000003,3.2,5.6,0.5720000000000001,0.5579999999999999,1.0,1.6,0.621,1.6,2.8,4.4,1.1,1.1,0.9,1.1,2.8,10.0,POR,77,28.9,0.38,0.49,0.87,5.67,6.9,99.45,38,8.99,204.5,0.0,14.5 107 | 105,154,Jamal Murray,SG,19,21.5,3.6,8.9,0.40399999999999997,1.4,4.2,0.33399999999999996,2.2,4.7,0.466,0.483,1.3,1.5,0.883,0.5,2.1,2.6,2.1,0.6,0.3,1.4,1.5,9.9,DEN,82,21.5,0.06,-1.57,-1.51,1.86,7.8,101.15,40,3.21,411.0,0.0,62.5 108 | 106,157,Kenneth Faried,PF,27,21.2,3.7,6.8,0.5479999999999999,0.0,0.1,0.0,3.7,6.7,0.556,0.5479999999999999,2.1,3.1,0.693,3.0,4.6,7.6,0.9,0.7,0.7,1.0,2.0,9.6,DEN,61,21.2,-0.07,-1.55,-1.62,1.27,12.4,100.81,29,12.08,376.5,14.0,8.0 109 | 107,158,E'Twaun Moore,SG,27,24.9,3.9,8.5,0.457,1.1,2.8,0.37,2.8,5.6,0.501,0.519,0.8,1.0,0.77,0.5,1.6,2.1,2.2,0.7,0.4,0.8,1.8,9.6,NO,73,24.9,-0.24,-1.58,-1.82,1.5,7.3,100.16,32,8.08,151.0,0.0,10.0 110 | 108,160,Derrick Favors,PF,25,23.7,4.1,8.3,0.48700000000000004,0.1,0.2,0.3,4.0,8.1,0.491,0.49,1.3,2.2,0.615,1.8,4.3,6.1,1.1,0.9,0.8,1.2,2.1,9.5,UTAH,50,23.7,-2.76,2.06,-0.7,1.73,10.8,92.72,33,11.05,295.0,25.0,6.5 111 | 109,161,Patty Mills,PG,28,21.9,3.4,7.8,0.44,1.8,4.4,0.414,1.6,3.3,0.474,0.5579999999999999,0.8,1.0,0.825,0.3,1.5,1.8,3.5,0.8,0.0,1.3,1.4,9.5,SA,80,21.9,2.53,-1.26,1.27,4.86,10.0,98.97,60,3.58,522.0,112.0,19.0 112 | 110,162,Nik Stauskas,SG,23,27.4,3.1,7.9,0.396,1.7,4.5,0.368,1.5,3.4,0.433,0.5,1.5,1.9,0.813,0.3,2.6,2.8,2.4,0.6,0.4,1.6,1.8,9.5,PHI,80,27.4,-0.32,-2.25,-2.57,0.78,6.7,100.28,27,2.99,451.0,28.0,11.0 113 | 111,163,Michael Beasley,PF,28,16.7,3.9,7.3,0.532,0.3,0.8,0.419,3.5,6.5,0.545,0.5539999999999999,1.4,1.9,0.743,0.7,2.7,3.4,0.9,0.5,0.5,1.2,1.6,9.4,MIL,56,16.7,-1.7,-0.61,-2.31,0.48,11.6,97.91,23,1.4,939.0,8.0,5.0 114 | 112,164,Brandon Ingram,SF,19,28.8,3.5,8.7,0.402,0.7,2.4,0.294,2.8,6.3,0.44299999999999995,0.442,1.7,2.7,0.621,0.8,3.2,4.0,2.1,0.6,0.5,1.5,2.0,9.4,LAL,79,28.8,-1.76,-2.93,-4.69,-2.32,5.5,100.45,26,5.28,1203.0,194.0,100.0 115 | 113,166,Cory Joseph,PG,25,25.0,3.7,8.3,0.452,0.6,1.7,0.35600000000000004,3.1,6.6,0.47700000000000004,0.489,1.2,1.5,0.77,0.6,2.3,2.9,3.3,0.8,0.2,1.4,1.8,9.3,TOR,80,25.0,-0.5,-1.94,-2.44,0.86,8.9,97.43,49,7.32,516.5,48.5,15.0 116 | 114,167,Marquese Chriss,PF,19,21.3,3.5,7.7,0.449,0.9,2.7,0.321,2.6,5.0,0.52,0.506,1.4,2.2,0.624,1.2,3.1,4.2,0.7,0.8,0.9,1.3,3.2,9.2,PHX,82,21.3,-1.96,-1.82,-3.78,-0.76,6.3,103.56,24,2.94,252.0,0.0,22.0 117 | 115,168,Jeff Green,PF,30,22.2,3.2,8.1,0.39399999999999996,0.8,2.8,0.275,2.4,5.3,0.45799999999999996,0.442,2.1,2.4,0.863,0.6,2.5,3.1,1.2,0.5,0.2,1.1,1.5,9.2,ORL,69,22.2,-2.03,-1.31,-3.34,-0.21,7.7,98.84,26,15.0,14.0,57.5,28.5 118 | 116,169,Gerald Henderson,SG,29,23.2,3.3,7.7,0.423,0.8,2.4,0.353,2.4,5.3,0.455,0.478,1.8,2.3,0.8059999999999999,0.5,2.1,2.6,1.6,0.6,0.2,0.9,1.8,9.2,PHI,72,23.2,-1.51,-2.42,-3.93,-0.87,7.3,100.88,24,9.0,105.0,1.0,8.0 119 | 117,171,Michael Kidd-Gilchrist,SF,23,29.0,3.6,7.6,0.47700000000000004,0.0,0.1,0.111,3.6,7.5,0.483,0.478,1.9,2.4,0.784,1.9,5.0,7.0,1.4,1.0,1.0,0.7,2.3,9.2,CHA,81,29.0,-1.97,2.47,0.5,5.31,9.3,97.79,36,13.0,575.5,29.0,11.0 120 | 118,172,Jameer Nelson,PG,34,27.3,3.6,8.1,0.444,1.4,3.6,0.38799999999999996,2.2,4.4,0.489,0.531,0.6,0.8,0.7140000000000001,0.4,2.2,2.6,5.1,0.7,0.1,1.7,2.6,9.2,DEN,75,27.3,0.45,-0.44,0.01,4.17,7.5,100.06,34,4.54,369.0,0.0,9.0 121 | 119,173,Tony Allen,SG,35,27.0,3.9,8.4,0.461,0.2,0.8,0.278,3.6,7.6,0.479,0.473,1.1,1.8,0.615,2.3,3.2,5.5,1.4,1.6,0.4,1.4,2.5,9.1,MEM,71,27.0,-2.03,2.15,0.12,3.76,8.0,93.85,36,5.51,17.0,10.5,11.0 122 | 120,174,Channing Frye,C,33,18.9,3.2,7.0,0.45799999999999996,1.9,4.5,0.409,1.4,2.5,0.546,0.589,0.9,1.0,0.851,0.5,3.4,3.9,0.6,0.4,0.5,0.7,1.9,9.1,CLE,74,18.9,1.62,-0.58,1.04,3.7,10.1,98.14,44,7.81,445.0,8.0,4.0 123 | 121,177,Jodie Meeks,SG,29,20.5,2.9,7.1,0.402,1.6,3.8,0.409,1.3,3.3,0.395,0.512,1.8,2.1,0.878,0.1,2.0,2.1,1.3,0.9,0.1,1.0,1.1,9.1,ORL,36,20.5,-0.05,-1.6,-1.65,0.7,8.1,100.24,14,6.54,173.0,36.5,15.0 124 | 122,180,Kelly Olynyk,C,25,20.5,3.5,6.8,0.512,0.9,2.6,0.354,2.6,4.2,0.608,0.579,1.2,1.6,0.732,1.0,3.8,4.8,2.0,0.6,0.4,1.3,2.8,9.0,BOS,75,20.5,-0.31,0.81,0.5,3.54,11.0,99.85,49,3.09,457.0,56.5,16.0 125 | 123,181,Evan Turner,SF,28,25.5,3.6,8.5,0.426,0.5,1.8,0.263,3.1,6.7,0.47,0.45399999999999996,1.3,1.6,0.825,0.6,3.2,3.8,3.2,0.8,0.4,1.5,1.9,9.0,POR,65,25.5,-3.04,0.15,-2.89,0.25,8.8,99.29,34,16.39,564.0,17.0,13.0 126 | 124,182,DeMarre Carroll,SF,30,26.1,3.1,7.6,0.4,1.5,4.4,0.341,1.5,3.2,0.483,0.499,1.2,1.6,0.7609999999999999,0.9,2.9,3.8,1.0,1.1,0.4,0.8,2.0,8.9,TOR,72,26.1,0.0,0.83,0.83,4.66,7.1,96.82,44,14.2,363.5,29.5,8.0 127 | 125,185,Al-Farouq Aminu,SF,26,29.1,3.0,7.6,0.39299999999999996,1.1,3.5,0.33,1.9,4.2,0.445,0.46799999999999997,1.6,2.2,0.706,1.3,6.1,7.4,1.6,1.0,0.7,1.5,1.7,8.7,POR,61,29.1,-1.86,3.13,1.27,4.86,9.2,98.38,33,7.68,330.5,33.0,9.0 128 | 126,187,Nerlens Noel,C,22,20.5,3.6,6.1,0.595,0.0,0.0,0.0,3.6,6.0,0.597,0.595,1.5,2.2,0.6940000000000001,1.8,3.9,5.8,1.0,1.3,1.0,1.0,2.5,8.7,DAL/PHI,51,20.5,-1.33,2.58,1.25,2.95,12.7,98.69,24,4.38,663.0,105.0,64.0 129 | 127,188,Marreese Speights,C,29,15.7,3.0,6.7,0.445,1.3,3.4,0.37200000000000005,1.7,3.3,0.52,0.539,1.5,1.7,0.8759999999999999,1.1,3.5,4.5,0.8,0.3,0.5,0.8,2.8,8.7,LAC,82,15.7,0.67,0.69,1.36,3.66,11.4,97.43,51,1.4,564.5,80.0,12.0 130 | 128,193,Tyson Chandler,C,34,27.6,3.3,4.9,0.6709999999999999,0.0,0.0,,3.3,4.9,0.6709999999999999,0.6709999999999999,1.9,2.6,0.7340000000000001,3.3,8.2,11.5,0.6,0.7,0.5,1.4,2.7,8.4,PHX,47,27.6,-1.06,2.2,1.14,3.55,13.1,101.88,15,12.42,832.0,29.0,9.0 131 | 129,195,Troy Daniels,SG,25,17.7,2.8,7.4,0.374,2.1,5.3,0.389,0.7,2.1,0.336,0.513,0.6,0.8,0.7959999999999999,0.3,1.2,1.5,0.7,0.3,0.1,0.7,1.3,8.2,MEM,67,17.7,-0.02,-2.1,-2.12,0.72,6.5,95.85,33,3.33,106.0,30.0,10.0 132 | 130,197,Willy Hernangomez,C,22,18.4,3.4,6.5,0.529,0.1,0.2,0.267,3.4,6.3,0.5379999999999999,0.5329999999999999,1.3,1.7,0.728,2.4,4.6,7.0,1.3,0.6,0.5,1.4,2.1,8.2,NY,72,18.4,-0.75,0.4,-0.35,2.37,13.3,99.12,27,1.44,2.0,0.0,55.5 133 | 131,198,Caris LeVert,SF,22,21.7,3.0,6.7,0.45,1.0,3.2,0.321,2.0,3.4,0.5710000000000001,0.528,1.2,1.6,0.72,0.4,2.9,3.3,1.9,0.9,0.1,1.0,1.6,8.2,BKN,57,21.7,-0.46,-0.84,-1.3,1.53,8.6,104.52,15,1.56,198.5,0.0,28.0 134 | 132,200,Willie Cauley-Stein,C,23,18.9,3.4,6.4,0.53,0.0,0.0,0.0,3.4,6.4,0.532,0.53,1.3,2.0,0.669,1.1,3.4,4.5,1.1,0.7,0.6,0.9,2.0,8.1,SAC,75,18.9,-2.07,0.9,-1.17,1.72,10.6,96.91,29,3.55,456.5,0.0,17.0 135 | 133,202,Ben McLemore,SG,23,19.3,3.0,6.9,0.43,1.1,2.8,0.382,1.9,4.1,0.462,0.507,1.1,1.5,0.753,0.3,1.8,2.1,0.8,0.5,0.1,1.0,1.8,8.1,SAC,61,19.3,-2.88,-1.58,-4.46,-0.99,6.0,97.04,27,4.01,272.5,30.0,17.0 136 | 134,203,Tristan Thompson,C,25,29.9,3.4,5.6,0.6,0.0,0.0,0.0,3.4,5.6,0.604,0.6,1.4,2.7,0.498,3.7,5.5,9.2,1.0,0.5,1.1,0.8,2.3,8.1,CLE,78,29.9,-1.31,1.31,0.0,4.62,8.9,98.28,50,15.33,1365.5,368.0,211.0 137 | 135,204,Vince Carter,SF,40,24.6,2.6,6.7,0.39399999999999996,1.5,4.1,0.37799999999999995,1.1,2.7,0.418,0.508,1.2,1.6,0.765,0.5,2.6,3.1,1.8,0.8,0.5,0.7,2.2,8.0,MEM,73,24.7,1.36,-0.06,1.3,4.81,7.8,95.02,36,4.26,2891.5,0.0,7.0 138 | 136,205,Alex Len,C,23,20.3,3.0,6.0,0.49700000000000005,0.0,0.2,0.25,2.9,5.9,0.503,0.5,1.9,2.7,0.721,2.0,4.6,6.6,0.6,0.5,1.3,1.3,3.1,8.0,PHX,77,20.3,-3.62,1.28,-2.34,0.81,9.5,103.52,21,4.82,270.0,10.5,6.0 139 | 137,207,Langston Galloway,PG,25,20.2,2.8,7.4,0.38,1.6,4.2,0.39,1.2,3.2,0.36700000000000005,0.49,0.7,0.9,0.797,0.4,1.7,2.1,1.3,0.6,0.1,0.6,1.3,7.9,NO/SAC,74,20.2,0.1,-1.65,-1.55,1.46,6.7,99.48,29,5.2,146.0,14.5,2.0 140 | 138,208,Shelvin Mack,PG,26,21.9,3.1,6.9,0.446,0.7,2.2,0.308,2.4,4.7,0.51,0.495,1.0,1.4,0.688,0.4,1.9,2.3,2.8,0.8,0.1,1.6,1.8,7.8,UTAH,55,21.9,-1.51,-1.28,-2.79,0.25,7.9,93.44,34,2.43,121.5,6.0,3.0 141 | 139,210,Rajon Rondo,PG,30,26.7,3.3,8.1,0.408,0.7,1.9,0.376,2.6,6.2,0.418,0.45299999999999996,0.4,0.7,0.6,1.1,4.1,5.1,6.7,1.4,0.2,2.4,2.1,7.8,CHI,69,26.7,-1.35,-0.49,-1.84,1.51,10.6,97.96,34,14.0,1765.0,185.5,74.0 142 | 140,211,Garrett Temple,SG,30,26.6,2.8,6.6,0.424,1.3,3.4,0.373,1.6,3.3,0.47600000000000003,0.519,0.9,1.1,0.784,0.5,2.3,2.8,2.6,1.3,0.4,1.2,2.2,7.8,SAC,65,26.6,-0.14,-0.46,-0.6,2.67,7.1,97.51,25,8.0,100.0,2.0,1.0 143 | 141,213,Matthew Dellavedova,PG,26,26.1,2.7,7.0,0.39,1.0,2.8,0.36700000000000005,1.7,4.2,0.40399999999999997,0.46299999999999997,1.1,1.3,0.8540000000000001,0.3,1.6,1.9,4.7,0.7,0.0,1.8,2.0,7.6,MIL,76,26.1,-0.88,-1.01,-1.89,1.54,6.6,97.5,39,9.61,910.5,175.0,30.0 144 | 142,214,Luol Deng,SF,31,26.5,2.9,7.6,0.387,0.9,2.9,0.309,2.0,4.6,0.436,0.447,0.8,1.1,0.73,1.1,4.1,5.3,1.3,0.9,0.4,0.8,1.1,7.6,LAL,56,26.5,-1.87,1.54,-0.33,2.69,7.7,100.3,18,18.0,838.0,22.0,13.5 145 | 143,215,Andre Iguodala,SF,33,26.3,2.9,5.5,0.528,0.8,2.3,0.36200000000000004,2.0,3.1,0.6509999999999999,0.605,0.9,1.3,0.706,0.7,3.3,4.0,3.4,1.0,0.5,0.8,1.3,7.6,GS,76,26.3,2.01,1.52,3.53,8.72,10.2,101.92,64,11.13,1748.5,300.5,43.0 146 | 144,216,Manu Ginobili,SG,39,18.7,2.5,6.4,0.39,1.3,3.3,0.392,1.2,3.1,0.387,0.491,1.2,1.6,0.804,0.4,1.9,2.3,2.7,1.2,0.2,1.4,1.7,7.5,SA,69,18.7,1.43,1.0,2.43,4.64,8.7,100.94,51,14.0,53.0,299.0,66.0 147 | 145,224,Danny Green,SG,29,26.6,2.6,6.6,0.392,1.7,4.6,0.379,0.9,2.0,0.42,0.523,0.4,0.5,0.8440000000000001,0.5,2.8,3.3,1.8,1.0,0.8,1.1,1.8,7.3,SA,68,26.6,-0.45,1.71,1.26,4.83,6.9,94.47,51,10.0,6.0,0.0,15.0 148 | 146,225,David Lee,PF,33,18.7,3.1,5.3,0.59,0.0,0.0,,3.1,5.3,0.59,0.59,1.0,1.4,0.708,1.9,3.7,5.6,1.6,0.4,0.5,1.0,1.6,7.3,SA,79,18.7,-0.38,1.5,1.12,3.98,12.6,98.36,58,1.55,42.0,56.5,35.0 149 | 147,227,Thabo Sefolosha,SF,32,25.7,2.8,6.4,0.441,0.7,1.9,0.342,2.1,4.4,0.484,0.49200000000000005,0.9,1.2,0.733,0.9,3.5,4.4,1.7,1.5,0.5,0.9,1.6,7.2,ATL,62,25.7,-1.93,2.27,0.34,3.55,8.6,99.53,32,3.85,280.0,28.5,17.5 150 | 148,229,Justin Anderson,SF,23,16.4,2.5,5.9,0.424,0.8,2.6,0.299,1.7,3.3,0.522,0.49,1.4,1.7,0.7909999999999999,0.9,2.3,3.3,0.9,0.5,0.3,0.9,1.5,7.1,DAL/PHI,75,16.4,-1.36,-2.54,-3.9,-0.59,9.1,97.35,24,1.51,4.0,5.0,10.0 151 | 149,232,Joe Ingles,SF,29,24.0,2.5,5.5,0.452,1.5,3.4,0.441,1.0,2.1,0.47100000000000003,0.589,0.6,0.8,0.735,0.3,2.9,3.2,2.7,1.2,0.1,1.3,2.0,7.1,UTAH,82,24.0,2.29,0.26,2.55,6.68,8.9,94.04,51,2.15,178.0,86.5,4.0 152 | 150,241,Jared Dudley,PF,31,21.3,2.5,5.4,0.45399999999999996,1.2,3.2,0.379,1.3,2.2,0.5589999999999999,0.565,0.7,1.0,0.662,0.5,3.0,3.5,1.9,0.7,0.3,1.1,2.4,6.8,PHX,64,21.3,-0.67,1.89,1.22,3.94,7.9,103.23,17,10.47,184.0,31.0,4.0 153 | 151,243,Patrick Patterson,PF,27,24.6,2.4,5.9,0.401,1.4,3.9,0.37200000000000005,0.9,2.0,0.45799999999999996,0.523,0.7,0.9,0.7170000000000001,1.0,3.6,4.5,1.2,0.6,0.4,0.6,1.8,6.8,TOR,65,24.6,1.05,1.26,2.31,5.4,7.5,97.3,42,6.05,8.0,53.5,8.0 154 | 152,244,Bobby Portis,PF,21,15.6,2.9,5.9,0.488,0.5,1.5,0.33299999999999996,2.4,4.4,0.541,0.531,0.6,0.9,0.6609999999999999,1.2,3.5,4.6,0.5,0.3,0.2,0.6,1.5,6.8,CHI,64,15.6,-1.94,-0.5,-2.44,0.43,11.0,97.38,30,1.45,193.0,37.0,73.0 155 | 153,244,Bobby Portis,PF,21,15.6,2.9,5.9,0.488,0.5,1.5,0.33299999999999996,2.4,4.4,0.541,0.531,0.6,0.9,0.6609999999999999,1.2,3.5,4.6,0.5,0.3,0.2,0.6,1.5,6.8,CHI,64,15.6,-1.94,-0.5,-2.44,0.43,11.0,97.38,30,1.52,193.0,37.0,73.0 156 | 154,246,Brandan Wright,PF,29,16.0,3.0,4.8,0.615,0.0,0.0,0.0,3.0,4.8,0.619,0.615,0.8,1.3,0.657,1.1,1.7,2.8,0.5,0.4,0.7,0.4,1.5,6.8,MEM,28,16.0,-0.86,0.4,-0.46,0.71,11.6,93.54,14,5.71,152.5,0.0,6.0 157 | 155,247,Alec Burks,SG,25,15.5,2.4,5.9,0.39899999999999997,0.6,1.8,0.32899999999999996,1.8,4.1,0.43,0.45,1.4,1.9,0.769,0.4,2.5,2.9,0.7,0.4,0.1,0.8,1.2,6.7,UTAH,42,15.5,-2.47,-0.94,-3.41,-0.12,8.7,95.94,26,10.15,111.0,10.0,15.0 158 | 156,251,Dwight Powell,C,25,17.3,2.5,4.9,0.515,0.3,1.0,0.284,2.2,3.9,0.5710000000000001,0.542,1.4,1.8,0.759,1.2,2.8,4.0,0.6,0.8,0.5,0.4,1.8,6.7,DAL,77,17.3,-0.66,-0.51,-1.17,1.58,10.7,93.78,30,8.38,213.0,0.0,10.0 159 | 157,253,Jaylen Brown,SF,20,17.2,2.5,5.4,0.45399999999999996,0.6,1.7,0.341,1.9,3.7,0.507,0.508,1.1,1.6,0.685,0.6,2.2,2.8,0.8,0.4,0.2,0.9,1.8,6.6,BOS,78,17.2,-2.95,-0.42,-3.37,-0.21,7.1,99.02,50,4.74,441.0,0.0,100.0 160 | 158,254,Michael Carter-Williams,PG,25,18.8,2.5,6.8,0.366,0.3,1.4,0.23399999999999999,2.2,5.4,0.401,0.391,1.3,1.7,0.753,0.5,2.9,3.4,2.5,0.8,0.5,1.5,2.3,6.6,CHI,45,18.8,-2.82,1.12,-1.7,0.77,7.0,98.47,25,3.18,645.0,0.0,5.0 161 | 159,255,Dante Cunningham,SF,29,25.0,2.6,5.4,0.485,1.1,2.7,0.392,1.6,2.7,0.579,0.584,0.2,0.4,0.593,0.8,3.3,4.2,0.6,0.6,0.4,0.4,1.5,6.6,NO,66,25.0,-0.37,-0.56,-0.93,2.29,6.8,99.77,28,2.98,97.5,0.0,3.0 162 | 160,256,Kosta Koufos,C,27,20.0,3.0,5.5,0.551,0.0,0.0,0.0,3.0,5.5,0.552,0.551,0.5,0.9,0.613,1.7,4.0,5.7,0.7,0.5,0.7,0.9,2.4,6.6,SAC,71,20.0,-2.78,2.83,0.05,2.79,9.3,96.17,27,8.05,189.0,37.0,8.0 163 | 161,257,Andre Roberson,SF,25,30.1,2.7,5.9,0.46399999999999997,0.6,2.3,0.245,2.2,3.5,0.609,0.513,0.6,1.4,0.423,1.2,3.9,5.1,1.0,1.2,1.0,0.6,2.6,6.6,OKC,79,30.1,-1.4,2.64,1.24,6.73,5.9,101.08,46,2.18,7.5,10.0,8.0 164 | 162,259,Sam Dekker,SF,22,18.4,2.6,5.6,0.473,0.8,2.4,0.321,1.9,3.1,0.591,0.5429999999999999,0.5,0.9,0.5589999999999999,1.2,2.5,3.7,1.0,0.5,0.3,0.5,1.1,6.5,HOU,77,18.4,0.05,-1.42,-1.37,1.64,8.7,102.25,52,1.72,331.0,139.0,13.0 165 | 163,260,Amir Johnson,PF,29,20.1,2.7,4.6,0.5760000000000001,0.3,0.8,0.409,2.3,3.8,0.612,0.612,0.8,1.3,0.67,1.5,3.1,4.6,1.8,0.6,0.8,1.0,2.6,6.5,BOS,80,20.1,0.22,3.58,3.8,7.02,9.1,97.94,51,12.0,282.0,31.5,6.0 166 | 164,267,Kyle O'Quinn,C,26,15.6,2.7,5.2,0.521,0.0,0.2,0.11800000000000001,2.7,5.0,0.5379999999999999,0.523,0.8,1.1,0.7709999999999999,2.0,3.6,5.6,1.5,0.5,1.3,1.0,2.2,6.3,NY,79,15.6,-1.28,1.16,-0.12,2.31,13.2,97.82,29,3.92,152.0,0.0,7.0 167 | 165,270,Dante Exum,PG,21,18.6,2.3,5.5,0.42700000000000005,0.7,2.3,0.295,1.7,3.2,0.519,0.488,0.9,1.1,0.795,0.5,1.5,2.0,1.7,0.3,0.2,1.2,2.2,6.2,UTAH,66,18.6,-2.14,-0.65,-2.79,0.25,5.4,94.42,40,3.94,483.0,48.5,28.0 168 | 166,272,Spencer Hawes,PF,28,14.8,2.5,5.1,0.484,0.5,1.5,0.309,2.0,3.6,0.556,0.529,0.8,1.0,0.846,0.7,2.8,3.5,1.5,0.3,0.6,0.9,1.4,6.2,MIL/CHA,54,14.8,-2.13,-0.87,-3.0,0.06,10.9,100.06,27,6.35,195.0,12.0,4.0 169 | 167,273,Trey Lyles,PF,21,16.3,2.2,6.2,0.36200000000000004,0.9,2.9,0.319,1.3,3.3,0.4,0.436,0.8,1.1,0.722,0.7,2.6,3.3,1.0,0.4,0.3,0.9,1.4,6.2,UTAH,71,16.3,-2.48,-0.23,-2.71,0.29,7.6,94.43,43,2.34,334.5,48.0,12.0 170 | 168,275,Chandler Parsons,SF,28,19.9,2.2,6.5,0.33799999999999997,0.7,2.7,0.26899999999999996,1.5,3.8,0.38799999999999996,0.39399999999999996,1.0,1.3,0.8140000000000001,0.2,2.3,2.5,1.6,0.6,0.1,0.7,1.5,6.2,MEM,34,19.9,-3.51,-0.33,-3.84,-0.29,5.6,94.04,18,22.12,555.5,59.0,16.0 171 | 169,278,Troy Williams,SF,22,18.6,2.4,5.6,0.43700000000000006,0.6,2.1,0.29,1.8,3.5,0.524,0.491,0.7,1.1,0.6559999999999999,0.5,1.8,2.3,0.8,0.9,0.3,1.1,2.0,6.2,HOU/MEM,30,18.6,-3.06,-0.45,-3.51,-0.14,5.5,98.77,19,1.58,72.0,5.0,9.0 172 | 170,280,JaVale McGee,C,29,9.6,2.7,4.1,0.652,0.0,0.0,0.0,2.7,4.1,0.6579999999999999,0.652,0.7,1.4,0.505,1.3,1.9,3.2,0.2,0.2,0.9,0.5,1.4,6.1,GS,77,9.6,0.83,0.11,0.94,2.04,12.5,105.1,62,1.4,804.5,0.0,32.0 173 | 171,289,Jerian Grant,PG,24,16.3,2.0,4.8,0.425,0.8,2.1,0.366,1.3,2.7,0.473,0.507,1.0,1.2,0.89,0.3,1.5,1.8,1.9,0.7,0.1,0.7,1.5,5.9,CHI,63,16.3,0.5,1.07,1.57,3.03,8.4,97.0,29,1.64,371.0,25.0,32.5 174 | 172,290,Andrew Harrison,PG,22,20.5,1.6,5.0,0.325,0.6,2.2,0.276,1.0,2.8,0.363,0.385,2.1,2.7,0.763,0.3,1.6,1.9,2.8,0.7,0.3,1.2,2.7,5.9,MEM,72,20.5,-1.2,-0.38,-1.58,1.38,5.3,94.76,38,1.31,5.0,0.0,17.0 175 | 173,291,Domantas Sabonis,PF,20,20.1,2.4,5.9,0.39899999999999997,0.6,2.0,0.321,1.7,4.0,0.43799999999999994,0.452,0.5,0.8,0.657,0.6,3.0,3.6,1.0,0.5,0.4,1.0,2.5,5.9,OKC,81,20.1,-3.9,1.86,-2.04,1.14,4.9,99.61,46,2.44,550.5,0.0,82.0 176 | 174,292,Quincy Acy,PF,26,14.7,1.8,4.5,0.41200000000000003,1.0,2.4,0.41100000000000003,0.9,2.1,0.413,0.521,1.2,1.6,0.75,0.5,2.5,3.0,0.5,0.4,0.4,0.6,1.8,5.8,DAL/BKN,38,14.7,-2.38,-0.21,-2.59,0.01,8.3,101.09,11,1.79,179.0,4.0,4.0 177 | 175,301,Ian Mahinmi,C,30,17.9,2.1,3.6,0.586,0.0,0.0,,2.1,3.6,0.586,0.586,1.4,2.4,0.573,1.5,3.3,4.8,0.6,1.1,0.8,1.1,2.9,5.6,WSH,31,17.9,-2.22,3.11,0.89,1.44,8.2,98.9,19,15.94,162.5,10.0,5.0 178 | 176,302,Georgios Papagiannis,C,19,16.1,2.5,4.6,0.5489999999999999,0.0,0.1,0.0,2.5,4.5,0.56,0.5489999999999999,0.5,0.6,0.857,1.1,2.8,3.9,0.9,0.1,0.8,1.1,2.0,5.6,SAC,22,16.1,-2.47,-0.3,-2.77,0.08,8.2,96.93,7,2.2,172.0,7.0,3.0 179 | 177,303,Delon Wright,PG,24,16.5,1.8,4.3,0.42200000000000004,0.4,1.1,0.33299999999999996,1.4,3.2,0.45299999999999996,0.466,1.6,2.0,0.764,0.6,1.2,1.8,2.1,1.0,0.4,0.9,1.1,5.6,TOR,27,16.5,-1.28,0.98,-0.3,0.77,10.5,94.48,19,1.58,202.5,11.5,14.0 180 | 178,306,Anthony Morrow,SG,31,14.6,2.0,5.1,0.389,0.8,2.7,0.308,1.2,2.4,0.479,0.47,0.7,0.8,0.919,0.2,0.4,0.6,0.5,0.5,0.0,0.1,0.9,5.5,CHI/OKC,49,14.6,-0.66,-1.46,-2.12,0.46,5.5,99.75,25,3.49,177.5,0.0,5.0 181 | 179,307,Terry Rozier,PG,22,17.1,2.0,5.6,0.36700000000000005,0.8,2.4,0.318,1.3,3.1,0.405,0.43700000000000006,0.7,0.9,0.773,0.5,2.5,3.1,1.8,0.6,0.1,0.6,0.9,5.5,BOS,74,17.1,-1.05,-0.01,-1.06,1.65,9.1,98.27,47,1.91,208.0,2.0,6.0 182 | 180,309,Malcolm Delaney,PG,27,17.1,2.0,5.3,0.374,0.4,1.5,0.23600000000000002,1.6,3.8,0.428,0.40700000000000003,1.0,1.3,0.8059999999999999,0.1,1.5,1.7,2.6,0.5,0.0,1.3,1.5,5.4,ATL,73,17.1,-2.64,-0.25,-2.89,0.18,6.4,98.7,37,2.5,183.5,1.0,1.0 183 | 181,311,Meyers Leonard,PF,24,16.5,2.0,5.1,0.386,1.0,2.9,0.34700000000000003,1.0,2.2,0.436,0.484,0.5,0.5,0.875,0.4,2.8,3.2,1.0,0.2,0.4,0.5,2.3,5.4,POR,74,16.5,-1.5,0.26,-1.24,1.48,6.1,99.44,37,9.21,276.0,149.0,31.0 184 | 182,314,Chasson Randle,PG,23,11.5,1.5,3.8,0.408,0.6,1.8,0.34,0.9,2.0,0.47100000000000003,0.49,1.6,1.7,0.953,0.2,1.0,1.2,1.3,0.3,0.1,0.7,1.5,5.3,NY/PHI,26,11.5,-0.74,-1.36,-2.1,0.2,8.4,98.49,8,1.31,82.0,13.5,7.0 185 | 183,318,Randy Foye,SG,33,18.6,1.7,4.7,0.363,1.0,2.9,0.33,0.7,1.8,0.418,0.466,0.8,0.9,0.857,0.1,2.1,2.2,2.0,0.5,0.1,1.2,1.4,5.2,BKN,69,18.6,-2.7,-1.42,-4.12,-0.85,5.7,103.71,17,2.5,267.5,2.0,4.0 186 | 184,319,Cameron Payne,PG,22,14.9,2.1,6.2,0.332,0.9,2.8,0.314,1.2,3.5,0.34600000000000003,0.402,0.2,0.3,0.625,0.1,1.5,1.5,1.8,0.5,0.1,0.9,1.7,5.2,CHI/OKC,31,14.9,-4.14,-0.31,-4.45,-0.39,4.1,98.86,16,2.11,324.5,38.5,21.0 187 | 185,323,Luis Scola,PF,36,12.8,2.0,4.2,0.47,0.5,1.4,0.34,1.5,2.8,0.535,0.526,0.7,1.0,0.6759999999999999,1.4,2.4,3.9,1.0,0.4,0.1,0.9,1.8,5.1,BKN,36,12.8,-0.8,-0.29,-1.09,0.62,8.9,102.58,7,5.5,416.0,16.0,60.0 188 | 186,326,Denzel Valentine,SG,23,17.1,1.8,5.1,0.354,1.3,3.6,0.35100000000000003,0.5,1.4,0.363,0.48100000000000004,0.2,0.3,0.778,0.2,2.5,2.6,1.1,0.5,0.1,0.9,1.5,5.1,CHI,57,17.1,-2.21,0.13,-2.08,0.64,5.8,97.94,28,2.09,403.0,23.0,24.0 189 | 187,327,Anthony Bennett,PF,23,11.5,1.7,4.0,0.413,0.6,2.1,0.271,1.1,1.9,0.568,0.484,1.1,1.6,0.722,1.1,2.3,3.4,0.5,0.2,0.1,0.5,0.8,5.0,BKN,23,11.5,-0.76,-1.29,-2.05,0.19,9.4,104.03,3,1.02,19.0,9.0,10.5 190 | 188,328,Aaron Brooks,PG,32,13.8,1.9,4.6,0.40299999999999997,0.7,2.0,0.375,1.1,2.6,0.424,0.483,0.5,0.6,0.8,0.3,0.8,1.1,1.9,0.4,0.1,1.0,1.4,5.0,IND,65,13.8,-1.81,-1.47,-3.28,-0.09,6.2,96.55,36,2.7,10.0,1.0,3.0 191 | 189,329,Trey Burke,PG,24,12.3,2.0,4.5,0.455,0.5,1.2,0.44299999999999995,1.5,3.2,0.45899999999999996,0.516,0.4,0.5,0.759,0.1,0.7,0.8,1.8,0.2,0.1,0.8,0.9,5.0,WSH,57,12.3,-2.15,-3.09,-5.24,-0.92,8.1,96.37,35,3.39,429.5,41.0,14.0 192 | 190,330,Joakim Noah,C,31,22.1,2.2,4.4,0.49,0.0,0.0,0.0,2.2,4.4,0.493,0.49,0.7,1.7,0.436,3.5,5.2,8.8,2.2,0.7,0.8,1.3,2.8,5.0,NY,46,22.1,-2.23,1.17,-1.06,1.32,9.4,98.45,17,17.0,1202.5,0.0,87.0 193 | 191,335,Mario Hezonja,SF,21,14.8,1.8,5.1,0.355,0.7,2.2,0.299,1.1,2.9,0.39799999999999996,0.42,0.6,0.8,0.8,0.3,1.9,2.2,1.0,0.5,0.2,0.9,1.1,4.9,ORL,65,14.8,-4.4,-2.2,-6.6,-2.09,5.9,97.48,20,3.91,396.5,272.0,207.0 194 | 192,337,Tiago Splitter,C,32,9.5,1.8,3.9,0.452,0.3,0.8,0.33299999999999996,1.5,3.1,0.48,0.484,1.1,1.4,0.818,1.0,1.8,2.8,0.5,0.1,0.1,0.8,1.0,4.9,PHI,8,9.5,-1.97,0.69,-1.28,0.09,10.6,99.11,1,8.55,274.5,8.0,9.0 195 | 193,341,Kevin Seraphin,PF,27,11.4,2.2,4.0,0.551,0.0,0.0,0.0,2.2,4.0,0.556,0.551,0.3,0.4,0.636,0.8,2.1,2.9,0.5,0.1,0.4,0.6,1.3,4.7,IND,49,11.4,-2.94,-1.07,-4.01,-0.31,9.5,96.87,23,1.8,16.0,4.5,8.0 196 | 194,342,Isaiah Canaan,SG,25,15.2,1.6,4.4,0.364,0.6,2.4,0.266,1.0,2.0,0.48100000000000004,0.436,0.8,0.8,0.909,0.2,1.1,1.3,0.9,0.6,0.0,0.5,0.9,4.6,CHI,39,15.2,-3.0,-1.12,-4.12,-0.37,5.6,96.46,19,1.02,180.5,24.5,8.0 197 | 195,343,Boris Diaw,PF,34,17.6,2.0,4.5,0.446,0.3,1.1,0.247,1.7,3.4,0.512,0.47700000000000004,0.4,0.5,0.743,0.6,1.5,2.2,2.3,0.2,0.1,1.2,1.1,4.6,UTAH,73,17.6,-2.58,-0.5,-3.08,0.03,7.1,93.08,45,7.0,489.5,136.5,13.0 198 | 196,345,Kris Humphries,PF,31,12.3,1.6,3.8,0.40700000000000003,0.3,1.0,0.35200000000000004,1.2,2.9,0.425,0.451,1.1,1.5,0.78,1.1,2.6,3.7,0.5,0.3,0.4,0.5,1.2,4.6,ATL,56,12.3,-2.3,0.41,-1.89,0.54,10.5,98.12,31,4.0,2940.5,67.0,9.0 199 | 197,348,Corey Brewer,SF,30,15.6,1.8,4.2,0.42200000000000004,0.3,1.4,0.22899999999999998,1.5,2.8,0.522,0.461,0.6,0.8,0.735,0.4,1.6,2.0,1.2,0.7,0.2,0.7,1.6,4.5,HOU/LAL,82,15.6,-1.75,1.0,-0.75,1.99,5.7,101.21,47,7.61,314.0,51.5,15.5 200 | 198,349,Reggie Bullock,SF,25,15.1,1.7,4.1,0.42200000000000004,0.9,2.4,0.384,0.8,1.8,0.473,0.531,0.2,0.2,0.7140000000000001,0.4,1.6,2.1,0.9,0.6,0.1,0.3,0.7,4.5,DET,31,15.1,-0.98,0.57,-0.41,0.79,8.1,98.05,13,2.26,125.0,20.0,13.0 201 | 199,353,Stanley Johnson,SF,20,17.8,1.7,4.7,0.353,0.6,2.0,0.292,1.1,2.7,0.39799999999999996,0.415,0.5,0.7,0.679,0.5,2.0,2.5,1.4,0.7,0.3,0.9,1.6,4.4,DET,77,17.8,-2.34,-0.04,-2.38,0.63,4.8,96.99,35,2.97,10.0,0.0,19.0 202 | 200,358,Noah Vonleh,PF,21,17.1,1.8,3.6,0.48100000000000004,0.1,0.3,0.35,1.7,3.4,0.49200000000000005,0.494,0.8,1.3,0.638,1.8,3.5,5.2,0.4,0.4,0.4,0.9,2.1,4.4,POR,74,17.1,-4.02,1.03,-2.99,0.11,7.3,98.18,38,2.75,218.0,23.5,12.0 203 | 201,360,Tyler Ennis,PG,22,11.1,1.7,3.9,0.433,0.5,1.3,0.386,1.2,2.6,0.457,0.498,0.4,0.5,0.84,0.2,0.7,0.8,1.6,0.5,0.0,0.8,1.1,4.3,HOU/LAL,53,11.1,-1.36,-0.51,-1.87,0.49,7.0,100.23,28,1.73,18.0,11.0,6.0 204 | 202,363,Brandon Rush,SG,31,21.9,1.5,4.0,0.374,0.9,2.4,0.386,0.6,1.6,0.35600000000000004,0.49200000000000005,0.3,0.4,0.722,0.3,1.8,2.1,1.0,0.5,0.5,0.6,0.9,4.2,MIN,47,21.9,-3.13,-0.73,-3.86,-0.48,4.3,96.76,15,3.5,412.5,14.0,1.5 205 | 203,370,Thon Maker,C,19,9.9,1.5,3.2,0.45899999999999996,0.5,1.3,0.37799999999999995,1.0,1.9,0.514,0.536,0.6,0.9,0.653,0.7,1.3,2.0,0.4,0.2,0.5,0.3,1.5,4.0,MIL,57,9.9,-1.23,0.17,-1.06,0.7,7.2,94.0,31,2.57,976.0,0.0,39.5 206 | 204,373,Anthony Brown,SF,24,14.5,1.6,4.5,0.36,0.6,2.5,0.259,1.0,2.1,0.478,0.43,0.0,0.0,,0.7,2.3,3.0,0.7,0.5,0.1,0.5,1.4,3.9,NO/ORL,11,14.5,-1.42,-0.34,-1.76,0.08,5.8,94.67,3,0.06,11.0,3.0,3.0 207 | 205,374,Jarell Martin,PF,22,13.3,1.4,3.6,0.384,0.2,0.6,0.36,1.2,3.0,0.389,0.414,1.0,1.2,0.8,1.0,2.9,3.9,0.2,0.4,0.2,0.7,2.2,3.9,MEM,42,13.3,-4.23,1.17,-3.06,0.02,6.9,97.39,23,1.47,80.5,2.0,4.0 208 | 206,375,Malik Beasley,SG,20,7.5,1.5,3.3,0.452,0.4,1.3,0.321,1.1,2.0,0.5329999999999999,0.514,0.4,0.5,0.8,0.2,0.5,0.8,0.5,0.3,0.0,0.4,0.5,3.8,DEN,22,7.5,-1.74,0.21,-1.53,0.18,8.6,103.72,12,1.63,159.0,0.0,14.0 209 | 207,376,Kris Dunn,PG,22,17.1,1.5,4.0,0.377,0.3,0.9,0.28800000000000003,1.2,3.1,0.40399999999999997,0.41100000000000003,0.5,0.8,0.61,0.3,1.8,2.1,2.4,1.0,0.5,1.1,2.3,3.8,MIN,78,17.1,-2.64,-0.41,-3.05,0.06,5.1,96.78,30,3.87,597.5,165.0,47.0 210 | 208,377,Jonas Jerebko,PF,29,15.8,1.5,3.4,0.435,0.6,1.7,0.34600000000000003,0.9,1.7,0.523,0.521,0.3,0.5,0.703,0.8,2.7,3.5,0.9,0.3,0.2,0.5,1.6,3.8,BOS,78,15.8,-0.89,-0.14,-1.03,1.63,6.9,98.94,51,5.0,215.5,7.0,17.0 211 | 209,379,Tyus Jones,PG,20,12.9,1.3,3.0,0.414,0.4,1.2,0.35600000000000004,0.8,1.8,0.45399999999999996,0.486,0.6,0.7,0.767,0.2,1.0,1.1,2.6,0.8,0.1,0.6,0.8,3.5,MIN,60,12.9,0.11,-0.34,-0.23,1.4,9.6,97.51,23,1.47,472.0,0.0,14.0 212 | 210,381,Adreian Payne,PF,25,7.5,1.3,3.0,0.426,0.2,0.8,0.2,1.1,2.2,0.513,0.45399999999999996,0.8,1.1,0.737,0.5,1.3,1.8,0.4,0.4,0.4,0.4,1.8,3.5,MIN,18,7.5,-1.69,1.36,-0.33,0.24,8.2,96.52,5,2.02,166.0,0.0,13.0 213 | 211,383,Rashad Vaughn,SG,20,11.2,1.4,3.8,0.365,0.6,2.0,0.321,0.8,1.8,0.413,0.449,0.0,0.1,0.4,0.1,1.1,1.2,0.6,0.5,0.2,0.3,0.8,3.5,MIL,41,11.2,-3.44,-0.89,-4.33,-0.35,5.2,96.36,18,1.81,128.0,2.0,7.0 214 | 212,384,Tyler Zeller,C,27,10.3,1.5,3.1,0.494,0.0,0.0,0.0,1.5,3.1,0.49700000000000005,0.494,0.4,0.8,0.564,0.8,1.6,2.4,0.8,0.1,0.4,0.4,1.2,3.5,BOS,51,10.3,-2.5,0.2,-2.3,0.28,8.5,99.46,32,8.0,336.0,15.0,14.0 215 | 213,386,Dragan Bender,PF,19,13.3,1.3,3.7,0.354,0.7,2.3,0.27699999999999997,0.7,1.4,0.483,0.441,0.1,0.3,0.364,0.5,1.9,2.4,0.5,0.2,0.5,0.7,1.7,3.4,PHX,43,13.3,-3.2,-0.68,-3.88,-0.28,3.3,100.06,13,4.28,495.0,, 216 | 214,389,Jared Sullinger,PF,24,10.7,1.4,4.3,0.319,0.3,1.6,0.16699999999999998,1.1,2.6,0.414,0.35100000000000003,0.4,0.7,0.5,0.9,1.5,2.5,0.3,0.4,0.1,0.4,1.5,3.4,TOR,11,10.7,-2.7,0.9,-1.8,0.1,2.7,96.58,2,5.63,368.5,11.0,2.0 217 | 215,395,Henry Ellenson,PF,20,7.7,1.2,3.4,0.359,0.5,1.8,0.28600000000000003,0.7,1.5,0.44799999999999995,0.43799999999999994,0.2,0.4,0.5,0.4,1.7,2.2,0.4,0.1,0.1,0.7,0.3,3.2,DET,19,7.7,-2.32,0.38,-1.94,0.1,7.6,95.74,8,1.7,147.0,6.5,5.0 218 | 216,396,Paul Pierce,SF,39,11.1,1.1,2.8,0.4,0.6,1.7,0.349,0.5,1.1,0.48100000000000004,0.507,0.4,0.5,0.769,0.0,1.9,1.9,0.4,0.2,0.2,0.6,1.6,3.2,LAC,25,11.1,-2.04,1.24,-0.8,0.4,4.4,97.71,16,3.53,1671.0,346.5,142.0 219 | 217,399,Briante Weber,PG,24,10.3,1.3,3.0,0.41700000000000004,0.1,0.5,0.1,1.2,2.5,0.48,0.425,0.6,0.8,0.688,0.4,0.9,1.3,1.1,0.6,0.1,0.4,0.8,3.1,GS/CHA,20,10.3,-2.02,-1.29,-3.31,-0.02,7.2,91.12,12,1.47,81.5,29.5,14.0 220 | 218,400,Jarrett Jack,PG,33,16.5,1.0,1.5,0.667,0.0,0.5,0.0,1.0,1.0,1.0,0.667,1.0,1.0,1.0,0.0,0.0,0.0,2.5,1.0,0.0,1.5,2.0,3.0,NO,2,16.5,-1.85,0.01,-1.84,0.03,5.1,97.67,1,0.06,245.5,11.5,7.0 221 | 219,405,Andrew Bogut,C,32,21.6,1.4,3.0,0.469,0.0,0.0,0.0,1.4,3.0,0.475,0.469,0.1,0.4,0.273,2.1,6.0,8.1,1.8,0.5,0.9,1.6,3.2,2.9,CLE/DAL,27,21.6,-4.01,4.34,0.33,1.2,9.2,93.14,8,0.24,1435.5,57.0,4.0 222 | 220,408,Fred VanVleet,PG,22,7.9,1.1,3.0,0.35100000000000003,0.3,0.8,0.379,0.8,2.2,0.341,0.401,0.5,0.6,0.818,0.1,1.0,1.1,0.9,0.4,0.1,0.4,1.0,2.9,TOR,37,7.9,-2.44,0.83,-1.61,0.28,7.8,97.63,25,1.31,116.5,0.0,17.5 223 | 221,415,Kyle Singler,SF,28,12.0,1.1,2.6,0.41,0.2,1.2,0.18899999999999997,0.8,1.4,0.5870000000000001,0.452,0.4,0.5,0.765,0.3,1.3,1.5,0.3,0.2,0.2,0.3,0.9,2.8,OKC,32,12.0,-3.25,0.9,-2.35,0.19,4.6,99.19,15,4.84,354.0,9.0,6.0 224 | 222,418,Omer Asik,C,30,15.5,1.0,2.1,0.47700000000000004,0.0,0.0,,1.0,2.1,0.47700000000000004,0.47700000000000004,0.7,1.3,0.59,1.5,3.7,5.3,0.5,0.2,0.3,0.5,1.6,2.7,NO,31,15.5,-2.97,1.94,-1.03,0.65,7.3,99.64,12,9.9,8.0,, 225 | 223,422,Tomas Satoransky,SG,25,12.6,1.1,2.6,0.415,0.2,0.6,0.243,0.9,1.9,0.473,0.446,0.4,0.6,0.6970000000000001,0.4,1.0,1.5,1.6,0.5,0.1,0.7,1.1,2.7,WSH,57,12.6,-2.1,1.08,-1.02,0.93,6.4,95.69,33,2.87,4.0,7.0,8.5 226 | 224,425,Andrew Nicholson,PF,27,9.0,1.1,2.9,0.387,0.1,0.7,0.185,1.0,2.2,0.452,0.41,0.2,0.4,0.643,0.4,1.2,1.6,0.3,0.4,0.2,0.4,1.4,2.6,BKN/WSH,38,9.0,-3.54,-0.67,-4.21,-0.23,3.1,97.45,20,6.09,3.0,5.0,5.0 227 | 225,428,DeAndre Liggins,SG,28,12.5,0.9,2.3,0.387,0.3,0.7,0.37,0.6,1.5,0.396,0.447,0.4,0.6,0.625,0.3,1.4,1.7,0.9,0.8,0.2,0.7,1.3,2.5,CLE/DAL,62,12.5,-3.13,0.76,-2.37,0.37,4.6,97.12,40,1.58,150.5,2.0,2.0 228 | 226,431,Miles Plumlee,C,28,10.8,1.0,2.0,0.478,0.0,0.0,,1.0,2.0,0.478,0.478,0.6,0.9,0.6409999999999999,0.8,1.3,2.1,0.5,0.4,0.3,0.7,1.6,2.5,MIL/CHA,45,10.8,-2.79,0.52,-2.27,0.25,4.0,95.64,19,12.5,362.0,11.0,3.0 229 | 227,432,Mike Scott,PF,28,10.8,0.9,3.3,0.28800000000000003,0.2,1.5,0.14800000000000002,0.7,1.8,0.406,0.322,0.4,0.4,0.875,0.6,1.5,2.1,0.9,0.2,0.2,0.4,0.7,2.5,ATL,18,10.8,-2.92,0.26,-2.66,0.06,5.8,97.93,7,3.33,7.0,2.0,1.0 230 | 228,435,Greivis Vasquez,PG,30,13.0,0.7,2.7,0.25,0.3,1.0,0.33299999999999996,0.3,1.7,0.2,0.313,0.7,1.0,0.667,0.0,0.7,0.7,1.7,0.3,0.3,0.3,2.0,2.3,BKN,3,13.0,-1.77,-0.38,-2.15,0.03,0.9,102.41,1,4.35,39.0,10.0,8.5 231 | 229,437,James Young,SG,21,7.6,0.9,2.0,0.431,0.4,1.2,0.34299999999999997,0.4,0.8,0.565,0.534,0.2,0.3,0.667,0.2,0.7,0.9,0.1,0.3,0.1,0.1,0.5,2.3,BOS,29,7.6,-1.88,-0.28,-2.16,0.14,6.4,100.01,16,1.83,12.0,0.0,12.0 232 | 230,442,Rakeem Christmas,PF,25,7.6,0.7,1.5,0.442,0.0,0.0,,0.7,1.5,0.442,0.442,0.7,1.0,0.7240000000000001,0.9,1.0,1.9,0.1,0.1,0.2,0.3,1.3,2.0,IND,29,7.6,-2.2,0.5,-1.7,0.2,4.9,98.43,14,1.47,185.0,13.0,3.0 233 | 231,446,Udonis Haslem,C,36,8.1,0.7,1.4,0.478,0.0,0.2,0.0,0.7,1.3,0.55,0.478,0.6,0.9,0.6,0.5,1.8,2.3,0.4,0.4,0.1,0.5,1.4,1.9,MIA,16,8.1,-2.79,0.73,-2.06,0.09,7.3,98.53,6,4.0,401.0,28.5,18.0 234 | 232,452,Lamar Patterson,SG,25,8.0,0.6,3.0,0.2,0.2,1.2,0.16699999999999998,0.4,1.8,0.222,0.233,0.4,0.6,0.667,0.2,1.2,1.4,1.2,0.2,0.0,0.8,1.2,1.8,ATL,5,8.0,-2.23,0.62,-1.61,0.03,-0.4,93.96,1,0.25,82.0,4.0,4.0 235 | 233,454,Cole Aldrich,C,28,8.6,0.7,1.4,0.523,0.0,0.0,,0.7,1.4,0.523,0.523,0.2,0.4,0.682,0.8,1.7,2.5,0.4,0.4,0.4,0.3,1.4,1.7,MIN,62,8.6,-1.82,1.83,0.01,1.04,7.6,97.42,23,7.64,220.5,22.0,9.0 236 | 234,455,Nick Collison,PF,36,6.4,0.7,1.2,0.609,0.0,0.1,0.0,0.7,1.1,0.636,0.609,0.3,0.4,0.625,0.5,1.1,1.6,0.6,0.1,0.1,0.2,0.9,1.7,OKC,20,6.4,-2.18,1.12,-1.06,0.17,12.0,97.52,10,3.75,283.5,10.0,12.0 237 | 235,457,Bruno Caboclo,SF,21,4.4,0.7,1.8,0.375,0.2,0.7,0.33299999999999996,0.4,1.1,0.4,0.43799999999999994,0.0,0.0,,0.6,0.6,1.1,0.4,0.2,0.1,0.2,0.4,1.6,TOR,9,4.4,-1.76,0.11,-1.65,0.04,9.4,95.38,8,1.59,270.5,11.0,8.0 238 | 236,459,Ryan Kelly,PF,25,6.9,0.5,1.8,0.28600000000000003,0.3,0.6,0.4,0.3,1.1,0.222,0.35700000000000004,0.3,0.4,0.833,0.1,1.1,1.1,0.5,0.3,0.3,0.3,0.3,1.6,ATL,16,6.9,-1.94,1.45,-0.49,0.08,7.3,96.26,6,1.58,23.0,17.0,10.0 239 | 237,460,Jordan Mickey,PF,22,5.6,0.6,1.4,0.441,0.0,0.0,0.0,0.6,1.3,0.455,0.441,0.3,0.6,0.5710000000000001,0.5,0.8,1.4,0.3,0.1,0.2,0.4,0.5,1.5,BOS,25,5.6,-2.62,-0.15,-2.77,0.03,6.0,97.66,9,1.47,129.5,0.0,3.0 240 | 238,475,Alonzo Gee,SF,29,6.8,0.2,1.1,0.214,0.0,0.2,0.0,0.2,0.8,0.273,0.214,0.4,0.7,0.556,0.3,0.8,1.2,0.5,0.4,0.1,0.3,1.1,0.8,DEN,13,6.8,-2.11,0.43,-1.68,0.08,0.8,104.33,4,0.06,109.0,, -------------------------------------------------------------------------------- /nlib/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = 0.1 2 | -------------------------------------------------------------------------------- /nlib/appliable.py: -------------------------------------------------------------------------------- 1 | """Appliable Functions to a Pandas GroupBy Operation (I.E Plugins)""" 2 | 3 | import numpy 4 | 5 | 6 | def tanimoto(list1, list2): 7 | """tanimoto coefficient 8 | 9 | In [2]: list2=['39229', '31995', '32015'] 10 | In [3]: list1=['31936', '35989', '27489', '39229', '15468', '31993', '26478'] 11 | In [4]: tanimoto(list1,list2) 12 | Out[4]: 0.1111111111111111 13 | 14 | Uses intersection of two sets to determine numerical score 15 | 16 | """ 17 | 18 | intersection = set(list1).intersection(set(list2)) 19 | return float(len(intersection)) / (len(list1) + len(list2) - len(intersection)) 20 | 21 | 22 | def npsum(x): 23 | """Numpy Library Sum""" 24 | 25 | return numpy.sum(x) 26 | 27 | 28 | def npmedian(x): 29 | """Numpy Library Median""" 30 | 31 | return numpy.median(x) 32 | -------------------------------------------------------------------------------- /nlib/csvops.py: -------------------------------------------------------------------------------- 1 | """ 2 | CSV Operations Module: 3 | 4 | See this for notes on I/O Performance in Pandas: 5 | http://pandas.pydata.org/pandas-docs/stable/io.html#io-perf 6 | 7 | """ 8 | 9 | from sensible.loginit import logger 10 | import pandas as pd 11 | 12 | log = logger(__name__) 13 | log.debug("imported csvops module") 14 | 15 | 16 | def ingest_csv(data): 17 | """Ingests a CSV using Pandas CSV I/O""" 18 | 19 | df = pd.read_csv(data) 20 | return df 21 | 22 | 23 | def list_csv_column_names(data): 24 | """Returns a list of column names from csv""" 25 | 26 | df = ingest_csv(data) 27 | colnames = list(df.columns.values) 28 | colnames_msg = "Column Names: {colnames}".format(colnames=colnames) 29 | log.info(colnames_msg) 30 | return colnames 31 | 32 | 33 | def aggregate_column_name(data, groupby_column_name, apply_column_name): 34 | """Returns aggregated results of csv by column name as json""" 35 | 36 | df = ingest_csv(data) 37 | res = df.groupby(groupby_column_name)[apply_column_name].sum() 38 | return res 39 | 40 | 41 | def group_by_operations(data, groupby_column_name, apply_column_name, func): 42 | """ 43 | 44 | Allows a groupby operation to take arbitrary functions 45 | 46 | In [14]: res_sum = group_by_operations(data=data, groupby_column_name="last_name", columns="count", func=npsum) 47 | 48 | In [15]: res_sum 49 | Out[15]: 50 | last_name 51 | eagle 34 52 | lee 3 53 | smith 27 54 | Name: count, dtype: int64 55 | 56 | """ 57 | 58 | df = ingest_csv(data) 59 | grouped = df.groupby(groupby_column_name)[ 60 | apply_column_name 61 | ] # GroupBy with filter to specific column(s) 62 | applied_data = grouped.apply(func) 63 | return applied_data 64 | -------------------------------------------------------------------------------- /nlib/utils.py: -------------------------------------------------------------------------------- 1 | """Utilities 2 | 3 | 4 | Main use it to serve as a 'plugins' utility so that functions can be: 5 | * registered 6 | * discovered 7 | * documented 8 | 9 | """ 10 | 11 | import importlib 12 | 13 | from sensible.loginit import logger 14 | 15 | log = logger(__name__) 16 | 17 | 18 | def appliable_functions(): 19 | """Returns a list of appliable functions to be used in GroupBy Operations""" 20 | 21 | from . import appliable 22 | 23 | module_items = dir(appliable) 24 | # Filter out special items __ 25 | func_list = list(filter(lambda x: not x.startswith("__"), module_items)) 26 | return func_list 27 | 28 | 29 | def plugins_map(): 30 | """Create a dictionary of callable functions 31 | 32 | In [2]: plugins = utils.plugins_map() 33 | 2017-06-22 10:34:25,312 - nlib.utils - INFO - Loading appliable functions/plugins: npmedian 34 | 2017-06-22 10:34:25,312 - nlib.utils - INFO - Loading appliable functions/plugins: npsum 35 | 2017-06-22 10:34:25,312 - nlib.utils - INFO - Loading appliable functions/plugins: numpy 36 | 2017-06-22 10:34:25,312 - nlib.utils - INFO - Loading appliable functions/plugins: tanimoto 37 | 38 | In [3]: plugins 39 | Out[3]: 40 | {'npmedian': , 41 | 'npsum': , 42 | 'numpy': , 43 | 'tanimoto': } 44 | 45 | In [4]: plugins['npmedian']([1,3]) 46 | Out[4]: 2.0 47 | """ 48 | 49 | plugins = {} 50 | funcs = appliable_functions() 51 | for func in funcs: 52 | plugin_load_msg = "Loading appliable functions/plugins: {func}".format( 53 | func=func 54 | ) 55 | log.info(plugin_load_msg) 56 | plugins[func] = getattr(importlib.import_module("nlib.appliable"), func) 57 | return plugins 58 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pylint==2.7.2 2 | pandas==1.2.3 3 | click==7.1.2 4 | black==20.8b1 5 | sensible==1.0.3 6 | pytest==6.2. 7 | pytest-cov==2.11.1 -------------------------------------------------------------------------------- /tests/test_nlib.py: -------------------------------------------------------------------------------- 1 | """pytest tests for library""" 2 | 3 | import pytest 4 | import sys 5 | 6 | sys.path.append("..") 7 | from nlib import csvops 8 | 9 | 10 | def test_list_csv_column_names(): 11 | expected = ["first_name", "last_name", "count"] 12 | actual = csvops.list_csv_column_names("../ext/input.csv") 13 | assert expected == actual 14 | 15 | 16 | def test_group_by_operations(): 17 | """ 18 | data, groupby_column_name, apply_column_name 19 | """ 20 | expected = {"john": 22, "kristen": 17, "piers": 10, "sam": 15} 21 | actual = csvops.aggregate_column_name( 22 | data="../ext/input.csv", 23 | groupby_column_name="first_name", 24 | apply_column_name="count", 25 | ) 26 | assert expected == actual.to_dict() 27 | --------------------------------------------------------------------------------