SlideShare una empresa de Scribd logo
1 de 26
Code Club(Wrangling Data With Python)
Tony Hirst & Sam Leon
@psychemedia / tony.hirst @ okfn.org
Week 4
Week4–LearningObjectives
By the end of this session, you will be able to:
• Recall and make use of what we did previously…
• Be able to merge data from different data
frames
• Be familiar with the idea of “tidy data”
• Have taken first steps in being able to
reshape datasets (long-wide data
transforms, pivots)
• Be able to start cleaning datasets using a
variety of strategies
Weeks1-3–Recap
In previous weeks, you have learned…
• How to getting data into and out of pandas from a
variety of file types (CSV, XSLSX) on your computer
and the web, as well as from HTML wen pages and
the World Bank Indicators API
• How Python can use lists to represent data and
how pandas represents tabular data using a data
frame
• How to filter, sort and generally manipulate tabular
data using pandas
• How to process data columns and derive new ones
Why Code?
Ref:PythonforFinance
Efficiency and Productivity Through Python
From Prototyping to Production
Financial industry context
- “quants” develop proof-of-concept models in
eg Matlab or R
- developers translate applications into
production code (C++, Java)
Inefficiencies – prototype code not reusable
Diverse skill sets – different programming languages & regimes
Legacy code – maintenance and development becomes complex
Ref:PythonforFinance
Efficiency and Productivity Through Python
Shorter time to results
- eg ability to download data directly source API
- eg ability to perform vectorised, column based
operations,
such as cumulative sum operations
- eg ability to reshape datasets
- eg ability to generate charts directly from
appropriately shaped data
?pd.read_csv
FindingHelp…
pd.<TAB>
df. <TAB>
pd.read_csv.<TAB>
Ref:PythonforFinance
Efficiency and Productivity Through Python
A consistent technological framework
“Python has the potential to provide
a single, powerful, consistent
framework with which to streamline
end to end development and
production efforts…”
Fromthecommandline…
cd “/path/to/my file”
(no ! required.....)
Merging
Data
.reset_index()
Mergiongdata…
pd.merge()
Reshaping data
Wide and long format data
“Tidy data”
.melt() and .pivot()
Hadley Wickham, “Tidy Data”, Journal of Statistical Software
http://vita.had.co.nz/papers/tidy-data.pdf
Reshapingdata:melt
pd.melt()
Index COL_A COL_B COL_C
ROW1 VAL_A1 VAL_B1 VAL_C1
ROW2 VAL_A2 VAL_B2 VAL_C2
Index variable value
ROW1 COL_A VAL_A1
ROW2 COL_A VAL_A2
ROW1 COL_B VAL_B1
ROW2 COL_B VAL_B2
ROW1 COL_C VAL_C1
ROW2 COL_C VAL_C2
pd.melt( df, id_vars=“COL_A”, value_vars=[“COL_B”,”COL_C”])
Reshapingdata:melt
pd.melt()
Reshape:
R rows
M index cols (id_vars=[])
N value cols (value_vars=[])
to:
M index cols
1 variable col
1 value col
Lots of rows…
Reshapingdata:melt
pd.pivot()
Index COL_A COL_B COL_C
ROW1 VAL_A1 VAL_B1 VAL_C1
ROW2 VAL_A2 VAL_B2 VAL_C2
df.pivot( index=‘Index’, variable=‘variable’, value=‘value’)
Index variable value
ROW1 COL_A VAL_A1
ROW2 COL_A VAL_A2
ROW1 COL_B VAL_B1
ROW2 COL_B VAL_B2
ROW1 COL_C VAL_C1
ROW2 COL_C VAL_C2
Reshapingdata:melt&pivot
Cleaning
Data
Cleaningoperations
Handle empty rows/cols
Handle duplicate rows
(“deduping”)
Clean up text strings
Map one value to another
Drop empty rows
df.dropna(axis=0,how=‘all’)
Drop empty columns
df.dropna(axis=1,how=‘all’)
Emptyandduplciatedata
Remove duplicate rows
df.drop_duplicates()
df.drop_duplicates([columns])
Tidywithincolumns
df3['incomeLevel'].str.split(':')
StringOperations
http://pandas.pydata.org/pandas-docs/dev/text.html
AnewPythondatastructure:dict()
Dictionaries / “dicts” / {}
“associatively addressed lists”
Translatingorconvertingvalues
map()

Más contenido relacionado

La actualidad más candente

DataCite How To: Use the MDS
DataCite How To: Use the MDSDataCite How To: Use the MDS
DataCite How To: Use the MDSFrauke Ziedorn
 
RDAP 16 Poster: Hacking the figshare API to Create Enhanced Metadata Records
RDAP 16 Poster: Hacking the figshare API to Create Enhanced Metadata RecordsRDAP 16 Poster: Hacking the figshare API to Create Enhanced Metadata Records
RDAP 16 Poster: Hacking the figshare API to Create Enhanced Metadata RecordsASIS&T
 
EKAW - Linked Data Publishing
EKAW - Linked Data PublishingEKAW - Linked Data Publishing
EKAW - Linked Data PublishingRuben Taelman
 
Retooling a Research Data Repository: data.depositar.io
Retooling a Research Data Repository: data.depositar.ioRetooling a Research Data Repository: data.depositar.io
Retooling a Research Data Repository: data.depositar.ioChengjen Lee
 
Data Management and Integration with d:swarm (Lightning talk, ELAG 2014)
Data Management and Integration with d:swarm (Lightning talk, ELAG 2014)Data Management and Integration with d:swarm (Lightning talk, ELAG 2014)
Data Management and Integration with d:swarm (Lightning talk, ELAG 2014)Jan Polowinski
 
CCO (Cataloging Cultural Objects): Incorporating CCO in Your Workflow
CCO (Cataloging Cultural Objects): Incorporating CCO in Your WorkflowCCO (Cataloging Cultural Objects): Incorporating CCO in Your Workflow
CCO (Cataloging Cultural Objects): Incorporating CCO in Your WorkflowVisual Resources Association
 
Discovering Related Data Sources in Data Portals
Discovering Related Data Sources in Data PortalsDiscovering Related Data Sources in Data Portals
Discovering Related Data Sources in Data PortalsPeter Haase
 
Building next generation data warehouses
Building next generation data warehousesBuilding next generation data warehouses
Building next generation data warehousesAlex Meadows
 
Benchmarking RDF Metadata Representations: Reification, Singleton Property an...
Benchmarking RDF Metadata Representations: Reification, Singleton Property an...Benchmarking RDF Metadata Representations: Reification, Singleton Property an...
Benchmarking RDF Metadata Representations: Reification, Singleton Property an...Fabrizio Orlandi
 
Querying the Wikidata Knowledge Graph
Querying the Wikidata Knowledge GraphQuerying the Wikidata Knowledge Graph
Querying the Wikidata Knowledge GraphIoan Toma
 
Web Mining & Text Mining
Web Mining & Text MiningWeb Mining & Text Mining
Web Mining & Text MiningHemant Sharma
 
Scripting User Contributed Interlinking
Scripting User Contributed InterlinkingScripting User Contributed Interlinking
Scripting User Contributed Interlinkingwhalb
 
Mining a Large Web Corpus
Mining a Large Web CorpusMining a Large Web Corpus
Mining a Large Web CorpusRobert Meusel
 
Using FME to Compile, Validate and Maintain a 4 Million Oil and Gas Well Data...
Using FME to Compile, Validate and Maintain a 4 Million Oil and Gas Well Data...Using FME to Compile, Validate and Maintain a 4 Million Oil and Gas Well Data...
Using FME to Compile, Validate and Maintain a 4 Million Oil and Gas Well Data...Safe Software
 
Beyond 2022 project presentation 2021
Beyond 2022 project presentation 2021Beyond 2022 project presentation 2021
Beyond 2022 project presentation 2021Fabrizio Orlandi
 
Smart Data Applications powered by the Wikidata Knowledge Graph
Smart Data Applications powered by the Wikidata Knowledge GraphSmart Data Applications powered by the Wikidata Knowledge Graph
Smart Data Applications powered by the Wikidata Knowledge GraphPeter Haase
 
A Gentle Introduction to Big Data
A Gentle Introduction to Big DataA Gentle Introduction to Big Data
A Gentle Introduction to Big DataMehmet Ali Akyol
 

La actualidad más candente (20)

Finding Data Sets
Finding Data SetsFinding Data Sets
Finding Data Sets
 
DataCite How To: Use the MDS
DataCite How To: Use the MDSDataCite How To: Use the MDS
DataCite How To: Use the MDS
 
RDAP 16 Poster: Hacking the figshare API to Create Enhanced Metadata Records
RDAP 16 Poster: Hacking the figshare API to Create Enhanced Metadata RecordsRDAP 16 Poster: Hacking the figshare API to Create Enhanced Metadata Records
RDAP 16 Poster: Hacking the figshare API to Create Enhanced Metadata Records
 
EKAW - Linked Data Publishing
EKAW - Linked Data PublishingEKAW - Linked Data Publishing
EKAW - Linked Data Publishing
 
Retooling a Research Data Repository: data.depositar.io
Retooling a Research Data Repository: data.depositar.ioRetooling a Research Data Repository: data.depositar.io
Retooling a Research Data Repository: data.depositar.io
 
Big Data - How important it is
Big Data - How important it isBig Data - How important it is
Big Data - How important it is
 
Data Management and Integration with d:swarm (Lightning talk, ELAG 2014)
Data Management and Integration with d:swarm (Lightning talk, ELAG 2014)Data Management and Integration with d:swarm (Lightning talk, ELAG 2014)
Data Management and Integration with d:swarm (Lightning talk, ELAG 2014)
 
CCO (Cataloging Cultural Objects): Incorporating CCO in Your Workflow
CCO (Cataloging Cultural Objects): Incorporating CCO in Your WorkflowCCO (Cataloging Cultural Objects): Incorporating CCO in Your Workflow
CCO (Cataloging Cultural Objects): Incorporating CCO in Your Workflow
 
Discovering Related Data Sources in Data Portals
Discovering Related Data Sources in Data PortalsDiscovering Related Data Sources in Data Portals
Discovering Related Data Sources in Data Portals
 
Building next generation data warehouses
Building next generation data warehousesBuilding next generation data warehouses
Building next generation data warehouses
 
The DBpedia databus
The DBpedia databusThe DBpedia databus
The DBpedia databus
 
Benchmarking RDF Metadata Representations: Reification, Singleton Property an...
Benchmarking RDF Metadata Representations: Reification, Singleton Property an...Benchmarking RDF Metadata Representations: Reification, Singleton Property an...
Benchmarking RDF Metadata Representations: Reification, Singleton Property an...
 
Querying the Wikidata Knowledge Graph
Querying the Wikidata Knowledge GraphQuerying the Wikidata Knowledge Graph
Querying the Wikidata Knowledge Graph
 
Web Mining & Text Mining
Web Mining & Text MiningWeb Mining & Text Mining
Web Mining & Text Mining
 
Scripting User Contributed Interlinking
Scripting User Contributed InterlinkingScripting User Contributed Interlinking
Scripting User Contributed Interlinking
 
Mining a Large Web Corpus
Mining a Large Web CorpusMining a Large Web Corpus
Mining a Large Web Corpus
 
Using FME to Compile, Validate and Maintain a 4 Million Oil and Gas Well Data...
Using FME to Compile, Validate and Maintain a 4 Million Oil and Gas Well Data...Using FME to Compile, Validate and Maintain a 4 Million Oil and Gas Well Data...
Using FME to Compile, Validate and Maintain a 4 Million Oil and Gas Well Data...
 
Beyond 2022 project presentation 2021
Beyond 2022 project presentation 2021Beyond 2022 project presentation 2021
Beyond 2022 project presentation 2021
 
Smart Data Applications powered by the Wikidata Knowledge Graph
Smart Data Applications powered by the Wikidata Knowledge GraphSmart Data Applications powered by the Wikidata Knowledge Graph
Smart Data Applications powered by the Wikidata Knowledge Graph
 
A Gentle Introduction to Big Data
A Gentle Introduction to Big DataA Gentle Introduction to Big Data
A Gentle Introduction to Big Data
 

Destacado

Conversations with data
Conversations with dataConversations with data
Conversations with dataTony Hirst
 
Hestia linear tales
Hestia linear talesHestia linear tales
Hestia linear talesTony Hirst
 
VTU Syllabus 2014 Scheme
VTU Syllabus 2014 SchemeVTU Syllabus 2014 Scheme
VTU Syllabus 2014 SchemeVishal Vanaki
 

Destacado (6)

Conversations with data
Conversations with dataConversations with data
Conversations with data
 
Deus GIS Portfolio
Deus GIS PortfolioDeus GIS Portfolio
Deus GIS Portfolio
 
Hestia linear tales
Hestia linear talesHestia linear tales
Hestia linear tales
 
Mpwhelp Eng[1]
Mpwhelp Eng[1]Mpwhelp Eng[1]
Mpwhelp Eng[1]
 
Calrg14 tm351
Calrg14 tm351Calrg14 tm351
Calrg14 tm351
 
VTU Syllabus 2014 Scheme
VTU Syllabus 2014 SchemeVTU Syllabus 2014 Scheme
VTU Syllabus 2014 Scheme
 

Similar a Week4

What's new in pandas and the SciPy stack for financial users
What's new in pandas and the SciPy stack for financial usersWhat's new in pandas and the SciPy stack for financial users
What's new in pandas and the SciPy stack for financial usersWes McKinney
 
Document Based Data Modeling Technique
Document Based Data Modeling TechniqueDocument Based Data Modeling Technique
Document Based Data Modeling TechniqueCarmen Sanborn
 
Data Wrangling and Visualization Using Python
Data Wrangling and Visualization Using PythonData Wrangling and Visualization Using Python
Data Wrangling and Visualization Using PythonMOHITKUMAR1379
 
Data Science at Scale - The DevOps Approach
Data Science at Scale - The DevOps ApproachData Science at Scale - The DevOps Approach
Data Science at Scale - The DevOps ApproachMihai Criveti
 
Establishing the Connection: Creating a Linked Data Version of the BNB
Establishing the Connection: Creating a Linked Data Version of the BNBEstablishing the Connection: Creating a Linked Data Version of the BNB
Establishing the Connection: Creating a Linked Data Version of the BNBnw13
 
Putting Historical Data in Context: how to use DSpace-GLAM
Putting Historical Data in Context: how to use DSpace-GLAMPutting Historical Data in Context: how to use DSpace-GLAM
Putting Historical Data in Context: how to use DSpace-GLAM4Science
 
Big_data_1674238705.ppt is a basic background
Big_data_1674238705.ppt is a basic backgroundBig_data_1674238705.ppt is a basic background
Big_data_1674238705.ppt is a basic backgroundNidhiAhuja30
 
Zaven Akopov (DESY -L-) For the INSPIRE Collaboration DESY ...
Zaven Akopov (DESY -L-) For the INSPIRE Collaboration DESY ...Zaven Akopov (DESY -L-) For the INSPIRE Collaboration DESY ...
Zaven Akopov (DESY -L-) For the INSPIRE Collaboration DESY ...Zaven Hakopov
 
Lecture2 big data life cycle
Lecture2 big data life cycleLecture2 big data life cycle
Lecture2 big data life cyclehktripathy
 
Introduction To Python
Introduction To PythonIntroduction To Python
Introduction To PythonVanessa Rene
 
Minimizing the Complexities of Machine Learning with Data Virtualization
Minimizing the Complexities of Machine Learning with Data VirtualizationMinimizing the Complexities of Machine Learning with Data Virtualization
Minimizing the Complexities of Machine Learning with Data VirtualizationDenodo
 
Frameworks provide structure. The core objective of the Big Data Framework is...
Frameworks provide structure. The core objective of the Big Data Framework is...Frameworks provide structure. The core objective of the Big Data Framework is...
Frameworks provide structure. The core objective of the Big Data Framework is...RINUSATHYAN
 
Big data berlin
Big data berlinBig data berlin
Big data berlinkammeyer
 
PDS Unit - 1 Introdiction to DS.ppt
PDS Unit - 1 Introdiction to DS.pptPDS Unit - 1 Introdiction to DS.ppt
PDS Unit - 1 Introdiction to DS.pptssuser52a19e
 

Similar a Week4 (20)

What's new in pandas and the SciPy stack for financial users
What's new in pandas and the SciPy stack for financial usersWhat's new in pandas and the SciPy stack for financial users
What's new in pandas and the SciPy stack for financial users
 
Prototype Design of Open Access Institutional Repository
Prototype Design of Open Access Institutional RepositoryPrototype Design of Open Access Institutional Repository
Prototype Design of Open Access Institutional Repository
 
Python ml
Python mlPython ml
Python ml
 
ALA Interoperability
ALA InteroperabilityALA Interoperability
ALA Interoperability
 
Document Based Data Modeling Technique
Document Based Data Modeling TechniqueDocument Based Data Modeling Technique
Document Based Data Modeling Technique
 
Data Wrangling and Visualization Using Python
Data Wrangling and Visualization Using PythonData Wrangling and Visualization Using Python
Data Wrangling and Visualization Using Python
 
Data Science at Scale - The DevOps Approach
Data Science at Scale - The DevOps ApproachData Science at Scale - The DevOps Approach
Data Science at Scale - The DevOps Approach
 
04 open source_tools
04 open source_tools04 open source_tools
04 open source_tools
 
Establishing the Connection: Creating a Linked Data Version of the BNB
Establishing the Connection: Creating a Linked Data Version of the BNBEstablishing the Connection: Creating a Linked Data Version of the BNB
Establishing the Connection: Creating a Linked Data Version of the BNB
 
Putting Historical Data in Context: how to use DSpace-GLAM
Putting Historical Data in Context: how to use DSpace-GLAMPutting Historical Data in Context: how to use DSpace-GLAM
Putting Historical Data in Context: how to use DSpace-GLAM
 
Big_data_1674238705.ppt is a basic background
Big_data_1674238705.ppt is a basic backgroundBig_data_1674238705.ppt is a basic background
Big_data_1674238705.ppt is a basic background
 
IT webinar 2016
IT webinar 2016IT webinar 2016
IT webinar 2016
 
BigData Analysis
BigData AnalysisBigData Analysis
BigData Analysis
 
Zaven Akopov (DESY -L-) For the INSPIRE Collaboration DESY ...
Zaven Akopov (DESY -L-) For the INSPIRE Collaboration DESY ...Zaven Akopov (DESY -L-) For the INSPIRE Collaboration DESY ...
Zaven Akopov (DESY -L-) For the INSPIRE Collaboration DESY ...
 
Lecture2 big data life cycle
Lecture2 big data life cycleLecture2 big data life cycle
Lecture2 big data life cycle
 
Introduction To Python
Introduction To PythonIntroduction To Python
Introduction To Python
 
Minimizing the Complexities of Machine Learning with Data Virtualization
Minimizing the Complexities of Machine Learning with Data VirtualizationMinimizing the Complexities of Machine Learning with Data Virtualization
Minimizing the Complexities of Machine Learning with Data Virtualization
 
Frameworks provide structure. The core objective of the Big Data Framework is...
Frameworks provide structure. The core objective of the Big Data Framework is...Frameworks provide structure. The core objective of the Big Data Framework is...
Frameworks provide structure. The core objective of the Big Data Framework is...
 
Big data berlin
Big data berlinBig data berlin
Big data berlin
 
PDS Unit - 1 Introdiction to DS.ppt
PDS Unit - 1 Introdiction to DS.pptPDS Unit - 1 Introdiction to DS.ppt
PDS Unit - 1 Introdiction to DS.ppt
 

Más de Tony Hirst

15 in 20 research fiesta
15 in 20 research fiesta15 in 20 research fiesta
15 in 20 research fiestaTony Hirst
 
Jupyternotebooks ou.pptx
Jupyternotebooks ou.pptxJupyternotebooks ou.pptx
Jupyternotebooks ou.pptxTony Hirst
 
Virtual computing.pptx
Virtual computing.pptxVirtual computing.pptx
Virtual computing.pptxTony Hirst
 
ouseful-parlihacks
ouseful-parlihacksouseful-parlihacks
ouseful-parlihacksTony Hirst
 
Gors appropriate
Gors appropriateGors appropriate
Gors appropriateTony Hirst
 
Gors appropriate
Gors appropriateGors appropriate
Gors appropriateTony Hirst
 
Robotlab jupyter
Robotlab   jupyterRobotlab   jupyter
Robotlab jupyterTony Hirst
 
Fco open data in half day th-v2
Fco open data in half day  th-v2Fco open data in half day  th-v2
Fco open data in half day th-v2Tony Hirst
 
Notes on the Future - ILI2015 Workshop
Notes on the Future - ILI2015 WorkshopNotes on the Future - ILI2015 Workshop
Notes on the Future - ILI2015 WorkshopTony Hirst
 
Community Journalism Conf - hyperlocal data wire
Community Journalism Conf - hyperlocal data wireCommunity Journalism Conf - hyperlocal data wire
Community Journalism Conf - hyperlocal data wireTony Hirst
 
Residential school 2015_robotics_interest
Residential school 2015_robotics_interestResidential school 2015_robotics_interest
Residential school 2015_robotics_interestTony Hirst
 
Data Mining - Separating Fact From Fiction - NetIKX
Data Mining - Separating Fact From Fiction - NetIKXData Mining - Separating Fact From Fiction - NetIKX
Data Mining - Separating Fact From Fiction - NetIKXTony Hirst
 
A Quick Tour of OpenRefine
A Quick Tour of OpenRefineA Quick Tour of OpenRefine
A Quick Tour of OpenRefineTony Hirst
 
Data reuse OU workshop bingo
Data reuse OU workshop bingoData reuse OU workshop bingo
Data reuse OU workshop bingoTony Hirst
 
Inspiring content - You Don't Need Big Data to Tell Good Data Stories
Inspiring content - You Don't Need Big Data to Tell Good Data Stories Inspiring content - You Don't Need Big Data to Tell Good Data Stories
Inspiring content - You Don't Need Big Data to Tell Good Data Stories Tony Hirst
 
Lincoln jun14datajournalism
Lincoln jun14datajournalismLincoln jun14datajournalism
Lincoln jun14datajournalismTony Hirst
 
Lincoln Journalism Research Day - Data Journalism
Lincoln Journalism Research Day - Data JournalismLincoln Journalism Research Day - Data Journalism
Lincoln Journalism Research Day - Data JournalismTony Hirst
 

Más de Tony Hirst (20)

15 in 20 research fiesta
15 in 20 research fiesta15 in 20 research fiesta
15 in 20 research fiesta
 
Dev8d jupyter
Dev8d jupyterDev8d jupyter
Dev8d jupyter
 
Ili 16 robot
Ili 16 robotIli 16 robot
Ili 16 robot
 
Jupyternotebooks ou.pptx
Jupyternotebooks ou.pptxJupyternotebooks ou.pptx
Jupyternotebooks ou.pptx
 
Virtual computing.pptx
Virtual computing.pptxVirtual computing.pptx
Virtual computing.pptx
 
ouseful-parlihacks
ouseful-parlihacksouseful-parlihacks
ouseful-parlihacks
 
Gors appropriate
Gors appropriateGors appropriate
Gors appropriate
 
Gors appropriate
Gors appropriateGors appropriate
Gors appropriate
 
Robotlab jupyter
Robotlab   jupyterRobotlab   jupyter
Robotlab jupyter
 
Fco open data in half day th-v2
Fco open data in half day  th-v2Fco open data in half day  th-v2
Fco open data in half day th-v2
 
Notes on the Future - ILI2015 Workshop
Notes on the Future - ILI2015 WorkshopNotes on the Future - ILI2015 Workshop
Notes on the Future - ILI2015 Workshop
 
Community Journalism Conf - hyperlocal data wire
Community Journalism Conf - hyperlocal data wireCommunity Journalism Conf - hyperlocal data wire
Community Journalism Conf - hyperlocal data wire
 
Residential school 2015_robotics_interest
Residential school 2015_robotics_interestResidential school 2015_robotics_interest
Residential school 2015_robotics_interest
 
Data Mining - Separating Fact From Fiction - NetIKX
Data Mining - Separating Fact From Fiction - NetIKXData Mining - Separating Fact From Fiction - NetIKX
Data Mining - Separating Fact From Fiction - NetIKX
 
A Quick Tour of OpenRefine
A Quick Tour of OpenRefineA Quick Tour of OpenRefine
A Quick Tour of OpenRefine
 
Data reuse OU workshop bingo
Data reuse OU workshop bingoData reuse OU workshop bingo
Data reuse OU workshop bingo
 
Inspiring content - You Don't Need Big Data to Tell Good Data Stories
Inspiring content - You Don't Need Big Data to Tell Good Data Stories Inspiring content - You Don't Need Big Data to Tell Good Data Stories
Inspiring content - You Don't Need Big Data to Tell Good Data Stories
 
Lincoln jun14datajournalism
Lincoln jun14datajournalismLincoln jun14datajournalism
Lincoln jun14datajournalism
 
Lincoln Journalism Research Day - Data Journalism
Lincoln Journalism Research Day - Data JournalismLincoln Journalism Research Day - Data Journalism
Lincoln Journalism Research Day - Data Journalism
 
Calrg14 tm351
Calrg14 tm351Calrg14 tm351
Calrg14 tm351
 

Week4