Fall 2017 Python Open Lab Week 3

October 10, 2017

Week 3’s lab was intense! We started with list methods, where we left off last week and went through the following:

          list.append(x): Add an item to the end of the list.

          list.extend(L): Extend the list by appending all the items in the given list.

          list.insert(i, x): Insert an item at a given position.

          list.remove(x): Remove the first item from the list whose value is x  (it will come up as an              error if there is no such item).

          list.pop([i]): Remove the item at the given position in the list, and return it. If no index is                specified, a.pop() removes and returns the last item in the list.

          list.index(x): Return the index in the list of the first item whose value is x (it will come up                as an error if there is no such item).

list.count(x): Return the number of times x appears in the list.

list.sort(cmp=None, key=None, reverse=False): Sort the items of the list in place.

list.reverse(): Reverse the elements of the list, in place.

 

Here is an example that uses most of the list methods 

>>> a = [66.25, 333, 333, 1, 1234.5]
>>> print(a.count(333), a.count(66.25), a.count(‘x’))
2 1 0
>>> a.insert(2, 1)
>>> a.append(333)
>>> a
[66.25, 333, -1, 333, 1, 1234.5, 333]
>>> a.index(333)
1
>>> a.remove(333)
>>> a
[66.25, -1, 333, 1, 1234.5, 333]
>>> a.reverse()
>>> a
[333, 1234.5, 1, 333, -1, 66.25]
>>> a.sort()
>>> a
[-1, 1, 66.25, 333, 333, 1234.5]
>>> a.pop()
1234.5
>>> a
[-1, 1, 66.25, 333, 333]

 

We then introduced the Python Dictionary:

Python Dictionary

In the Python dictionary, each key is separated from its value by a colon (:), the items are separated by commas, and the whole thing is enclosed in curly braces.

An empty dictionary without any items is written with just two curly braces, like this: {}. Keys within a dictionary must be a data type such as strings, numbers, or tuples.

Example:

dict = {‘Name’: ‘Michael’, ‘Age’: 7, ‘Class’: ‘First’}

print “dict[‘Name’]: “, dict[‘Name’]
print “dict[‘Age’]: “, dict[‘Age’]

When we run this code, it produces the following result:

dict[‘Name’]:  Michael
dict[‘Age’]:  7

 

And finally, we very briefly touched upon string methods and boolean methods – by no means did we cover all the material we intended (as you see below) – but will pick up in Week 4 with string methods first!

 

String Methods

The string data type has multiple methods. Here are all of the methods of list objects:

str.upper()  – Making Strings uppercase

str.lower() – Making Strings lowercase

str.join() method will concatenate two strings, but in a way that passes one string through another.

str.split() method returns a list of strings that are separated by whitespace if no other parameter is given.

str.replace() method can take an original string and return an updated string with some replacement.

Boolean methods:

Method True if
str.isalnum() If string consists of only alpha-numeric values
str.isalpha() If string consists of only alphabets
str.islower() If string consists of only lower-case  values
str.isnumeric() String consists of only numeric characters
str.isspace() String consists of only whitespace characters
str.istitle() String is in title case
str.isupper() String’s alphabetic characters are all upper case

Example:

>>> string = “Hello”

>>> string.upper()

‘HELLO’

>>> string.lower()

‘hello’

>>> string = “Hello,world”

>>> string.split(“,”)

[‘Hello’, ‘world’]

>>> string[::-1]

‘dlrow,olleH’

>>> len(string)

11

>>> string1 = “Hello”

>>> string2 = “World”

>>> string1+string2

‘HelloWorld’

Hope this material is helpful and inspiring. Please don’t hesitate to contact us for any clarifications. And as always, if you have any requests for material to cover in our labs, please email or contact us!

 

Fall 2017 Python Open Lab Week 2

Week 2: October 3rd

This week we started with a brief review of the basics from week 1 and the starter kit. We continued on with Data Structures and worked through Lists, Tuples and Dictionaries. These concepts were easy to approach and we went over many practice examples on the way. Towards the end of the session, we introduced the different types of lists that one can use in Python as well as list methods. List methods, however, are quite complex and we only got through .append and .extend in great detail.

Next week we will continue with list methods!

Please comment or email us for any questions. Below is the worksheet we used for this week:

 

Python Open Lab Week II

Outline and reference:

  1. Summary from Open Lab I – Starter Kit
  2. Data Structures:

Lists:

Lists are what they seem – a list of values. Each one of them is numbered, starting from zero – the first one is numbered zero, the second 1, the third 2, etc. You can remove values from the list, and add new values to the end. Example: Your many cats’ names.

Tuples:

Tuples are just like lists, but you can’t change their values. The values that you give it first up, are the values that you are stuck with for the rest of the program. Again, each value is numbered starting from zero, for easy reference. Example: the names of the months of the year.

Dictionaries:

Dictionaries are similar to what their name suggests – a dictionary. In a dictionary, you have an ‘index’ of words, and for each of them a definition. In python, the word is called a ‘key’, and the definition a ‘value’. The values in a dictionary aren’t numbered – tare similar to what their name suggests – a dictionary. In a dictionary, you have an ‘index’ of words, and for each of them a definition. In python, the word is called a ‘key’, and the definition a ‘value’. The values in a dictionary aren’t numbered – they aren’t in any specific order, either – the key does the same thing. You can add, remove, and modify the values in dictionaries. Example: telephone book.

Lists:

  • Indexing
  • Slicing
  • List operations (concat, etc.)
  • Multiplying
  • “In” operator

*Question: Given a year, month, day, print as follows:

21st July, 1991

Methods:

  • Append
  • Extend
  • Count
  • Index
  • Insert
  • Pop
  • Remove
  • Reverse
  • Sort/Sorted

Fall 2017 Python Open Lab Week 1

Week 1 September 26
In week 1 of our Python Open lab, we introduced the Python Starter Kit and went over Python basics such as expressions, variables and statements, floats, statements, integers, strings, booleans, and control flow statements. The class was a mix of students with little to no experience with Python, to a few advanced users, to those with some knowledge of basic concepts looking to strengthen their skillset.
We moved at a slower pace in this first session to ensure students grasped the basic concepts needed to continue on their programming journey with confidence.
We hope that anyone with outstanding questions contact us, and anyone thinking of attending sign up through the DSC website. All are welcome and we will ensure you are caught up with the relevant material we covered in the past!
Next week, we will start with a review of the starter kit and continue with lists.

New Additions to the Collection, May 22, 2017

The following titles were recently added or updated.

CU Numeric Data Catalog Holdings

New

CU Spatial Data Catalog Holdings

New:

New Additions to the Collection, May 15, 2017

The following titles were recently added or updated.

CU Numeric Data Catalog Holdings

New

Recently updated

CU Spatial Data Catalog Holdings

New:

Python Open Labs

In the penultimate session of Python Open Labs we had a brief review of csv concepts and XML parsing with BeautifulSoup Library.

A boiler plate code for practise can be obtained below from the Google Drive link, filed under Session-19 folder.

All of the course slides and examples are made available on: https://goo.gl/YP0c2E

Next week on April 21, I will going over the basic concepts and some practise problems from the python concepts that we looked into !

Python Open Labs – CSV Files

As we move towards the end of Spring semester, having covered most of the basics in Python, the recent sessions have been focusing on introducing python modules requested by attendees.

Last week had a second session on web-scraping with BeautifulSoup, I have updated the practice code for the same in Session-17 folder of the google drive link mentioned below.

This week, on April 7, 2017 I introduced the Python CSV module for reading and writing data from csv files. A very easy module primarily for reading CSV data, it requires the user to understand only a few of the details. The relevant sample code and a practise csv file can be found on the google drive link below, under Session-18 folder.

All of the course slides and examples are made available on: https://goo.gl/YP0c2E

Next week’s topic is XML file parsing !

See you next Friday from 1:30 PM – 3:30 PM at DSSC (Room – 215), Lehman Library at Columbia SIPA !

Python Open Labs – Web Scraping

For those who have been following this blog series, sorry for a late post on the updates about Python Open Labs.

Last week we covered some basics about web scraping with python, but before I start let me make a customary disclaimer.

Make sure that any of the websites that you want to scrape have granted you the required permissions to do so. Make sure you are not violating any terms of use by doing so.

So, getting along with the updates. In a nutshell web scraping can be described as a way of extracting useful relevant information from web pages i.e html pages. This can be abstracted into following steps:

  1. Downloading the web page content (user urllib or requests module in python)
  2. View page source in a web browser to examine the html structure of web page and locate information of interest for your task at hand
  3. Try to figure out the html structuring such as class, id, html tag etc that will help your python script locate the information.
  4. Use the beautifulsoup python module to parse and reach as close as possible to the relevant information in the html page structure and then extract the information using string methods.

The steps 2 – 4 go hand in hand, i.e one helps you build more upon the other. For example, the more you understand about the html structure surrounding your page the more specific inputs you can provide to beautifulsoup methods to extract out the information.

For the previous I have uploaded the sample python files with commented code lines on the Google Drive link mentioned below which you can access under Session – 16 folder. Make sure you work through those. Doubts, queries, feedbacks are always welcome 🙂

All of the course slides and examples are made available on: https://goo.gl/YP0c2E

We will be continuing with the web scraping lecture on march 31, 2017 after which I will also upload a comprehensive document with some additional relevant sources and more interesting code.

Happy Scraping !

See you next Friday from 1:30 PM – 3:30 PM at DSSC (Room – 215), Lehman Library at Columbia SIPA !

R Open Lab – Merge and Filter Data

During the first 20-30 minutes of yesterday’s open lab, we talked about how to merge datasets and filter data using base R and dplyr package. The rest of the open lab were free discussions between participants and instructors.

Thank you to all who showed up!

Welcome to explore the materials I used for the open lab:

https://drive.google.com/open?id=0B4uO8w_uGtsCWjRId0p6QllKZlE

Enjoy the spring!