Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
About
People
Publications
Teaching
Resources
Research Blog
Wiki Functions
Recent changes
Help
Licensing
Page
Discussion
Edit
View history
Editing
Community Data Science Course (Spring 2023)/Week 3 lecture notes
From CommunityData
Jump to:
navigation
,
search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Online Data Sets: An Important Question == Can you get bulk access to data? '''Bad Signs:''' * You must authenticate as a particular user in order to access data, and you can only see data for that user. (For example: you must log into Instagram's API as a particular user as per [https://www.instagram.com/developer/endpoints/users/ this link!]) '''Good signs:''' * The organization owning the data wants everyone to access it. Like wikipedia or most government data. * You may have to authenticate as a particular user, but you can access general data. * For example: once you log into Reddit, you can get all posts about almost anything ([https://developer.twitter.com/en/docs/geo/place-information/api-reference/get-geo-id-place_id Twitter API Docs]) ==Programming lecture outline== * Dictionaries! ** Purpose (use dictionaries to store key/value pairs) ** Initialization <code>{}</code> ** Accessing elements ** Adding elements ** Changing elements ** <code>.values()</code> and <code>.values()</code> ** using <code>in</code> to look into dictionaries ** using <code>for</code> loops to iterate over dictionaries (e.g., lets build a list of every letter in the alphabet using wordplay data) ** A few notes about dictionaries: *** A given key can only have one value, but multiple keys can have the same value. *** Dictionaries do not guarantee ordering (although if you are using new versions of Python, order will be preserved). * Additional loop control ** <code>break</code> ** <code>continue</code> ** ''Note:'' These can be useful in combination to if statements and can also be super useful for debugging! * Writing to files: ** Using the <code>open("whatever.tsv", "w")</code> function ** Using the <code>with open() as my_file:</code> statement ** Writing to a file with <code>print(file=my_file)</code> ** Writing a tab-separated value file using "\t" (make sure we leave a header!) ** Now lets open it up and make a little graph * Defining our own functions! * A little bit on looking for help (if it hasn't come up already) ** Looking at StackOverflow ** Walking through the Python API documentation ** Using a reference card or cheatsheet == Resources and Example Code == ===Initialization=== >>> my_dict = {} >>> my_dict {} >>> your_dict = {"Alice" : "chocolate", "Bob" : "strawberry", "Cara" : "mint chip"} >>> your_dict {'Bob': 'strawberry', 'Cara': 'mint chip', 'Alice': 'chocolate'} ===Adding elements to a dictionary=== >>> your_dict["Dora"] = "vanilla" >>> your_dict {'Bob': 'strawberry', 'Cara': 'mint chip', 'Dora': 'vanilla', 'Alice': 'chocolate'} ===Accessing elements of a dictionary=== >>> your_dict["Alice"] 'chocolate' >>> your_dict.get("Alice") 'chocolate' >>> your_dict["Eve"] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Eve' >>> "Eve" in your_dict False >>> "Alice" in your_dict True >>> your_dict.get("Eve") >>> person = your_dict.get("Eve") >>> print(person) None >>> print(type(person)) <type 'NoneType'> >>> your_dict.get("Alice") 'chocolate' ===Changing elements of a dictionary=== >>> your_dict["Alice"] = "coconut" >>> your_dict {'Bob': 'strawberry', 'Cara': 'mint chip', 'Dora': 'vanilla', 'Alice': 'coconut'} ==="Histograms"=== '''Challenge''': using wordplay example from last week, count the number of words that start with each letter. This kind of problem is very common Data Science, and it is easy with a dictionary. (note: I will post the solution after class) ===For-loops and dictionaries=== There are two common ways to iterate through dictionaries: >>> ages = {'Tommy': 34, Heather: 30, 'Joanna': 20} >>> for key in ages: >>> print(key + " is " + str(ages[key]) + " years old") >>> for key, value in ages.items(): >>> print(key + " is " + str(value) + " years old")
Summary:
Please note that all contributions to CommunityData are considered to be released under the Attribution-Share Alike 3.0 Unported (see
CommunityData:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Tools
What links here
Related changes
Special pages
Page information