Python For DS Cheat Sheet
Python For DS Cheat Sheet
elitedatascience.com/python-cheat-sheet
Pandas, Numpy, and Scikit-Learn are among the most popular libraries for data science
and analysis with Python.
Numpy is used for lower level scientific computation. Pandas is built on top of Numpy and
designed for practical data analysis in Python. Scikit-Learn comes with many machine
learning models that you can use out of the box.
In this cheat sheet, we’ll summarize some of the most common and useful functionality
from these libraries. Let’s jump straight in!
Importing Data
Any kind of data analysis starts with getting hold of some data. Pandas gives you plenty
of options for getting data into your Python workbook:
Importing Data
Python
1/6
1 pd.read_csv(filename) # From a CSV file
2 pd.read_table(filename) # From a delimited text file (like TSV)
3 pd.read_excel(filename) # From an Excel file
4 pd.read_sql(query, connection_object) # Reads from a SQL table/database
5 pd.read_json(json_string) # Reads from a JSON formatted string, URL or file.
6 pd.read_html(url) # Parses an html URL, string or file and extracts tables to a list of
7 dataframes
8 pd.read_clipboard() # Takes the contents of your clipboard and passes it to
read_table()
pd.DataFrame(dict) # From a dict, keys for columns names, values for data as lists
Exploring Data
Once you have imported your data into a Pandas dataframe, you can use these methods
to get a sense of what the data looks like:
Exploring Data
Python
Selecting
Often, you might need to select a single element or a certain subset of the data to inspect
it or perform further analysis. These methods will come in handy:
Selecting Data
Python
2/6
Data Cleaning
If you’re working with real world data, chances are you’ll need to clean it up. These are
some helpful methods:
Data Cleaning
Python
1 df[df[col] > 0.5] # Rows where the col column is greater than 0.5
2 df[(df[col] > 0.5) & (df[col] < 0.7)] # Rows where 0.5 < col < 0.7
3 df.sort_values(col1) # Sorts values by col1 in ascending order
4 df.sort_values(col2,ascending=False) # Sorts values by col2 in descending order
5 df.sort_values([col1,col2], ascending=[True,False]) # Sorts values by col1 in
6 ascending order then col2 in descending order
7 df.groupby(col) # Returns a groupby object for values from one column
8 df.groupby([col1,col2]) # Returns a groupby object values from multiple columns
9 df.groupby(col1)[col2].mean() # Returns the mean of the values in col2, grouped
10 by the values in col1 (mean can be replaced with almost any function from the
11 statistics section)
12 df.pivot_table(index=col1, values= col2,col3], aggfunc=mean) # Creates a pivot
table that groups by col1 and calculates the mean of col2 and col3
df.groupby(col1).agg(np.mean) # Finds the average across all columns for every
unique column 1 group
df.apply(np.mean) # Applies a function across each column
df.apply(np.max, axis=1) # Applies a function across each row
3/6
Methods for combining two dataframes:
1 df1.append(df2) # Adds the rows in df1 to the end of df2 (columns should be
2 identical)
3 pd.concat([df1, df2],axis=1) # Adds the columns in df1 to the end of df2 (rows
should be identical)
df1.join(df2,on=col1,how='inner') # SQL-style joins the columns in df1 with the
columns on df2 where the rows for col have identical values. how can be one of
'left', 'right', 'outer', 'inner'<strong> </strong>
Writing Data
And finally, when you have produced results with your analysis, there are several ways
you can export your data:
Writing Data
Python
Machine Learning
The Scikit-Learn library contains useful methods for training and applying machine
learning models. Our Scikit-Learn tutorial provides more context for the code below.
For a complete list of the Supervised Learning, Unsupervised Learning, and Dataset
Transformation, and Model Evaluation modules in Scikit-Learn, please refer to its user
guide.
Machine Learning
Python
4/6
1 # Import libraries and modules
2 import numpy as np
3 import pandas as pd
4 from sklearn.model_selection import train_test_split
5 from sklearn import preprocessing
6 from sklearn.ensemble import RandomForestRegressor
7 from sklearn.pipeline import make_pipeline
8 from sklearn.model_selection import GridSearchCV
9 from sklearn.metrics import mean_squared_error, r2_score
10 from sklearn.externals import joblib
11 # Load red wine data.
12 dataset_url = 'http://mlr.cs.umass.edu/ml/machine-learning-databases/wine-
13 quality/winequality-red.csv'
14 data = pd.read_csv(dataset_url, sep=';')
15 # Split data into training and test sets
16 y = data.quality
17 X = data.drop('quality', axis=1)
18 X_train, X_test, y_train, y_test = train_test_split(X, y,
19 test_size=0.2,
20 random_state=123,
21 stratify=y)
22 # Declare data preprocessing steps
23 pipeline = make_pipeline(preprocessing.StandardScaler(),
24 RandomForestRegressor(n_estimators=100))
25 # Declare hyperparameters to tune
26 hyperparameters = { 'randomforestregressor__max_features' : ['auto', 'sqrt', 'log2'],
27 'randomforestregressor__max_depth': [None, 5, 3, 1]}
28 # Tune model using cross-validation pipeline
29 clf = GridSearchCV(pipeline, hyperparameters, cv=10)
30 clf.fit(X_train, y_train)
31 # Refit on the entire training set
32 # No additional code needed if clf.refit == True (default is True)
33 # Evaluate model pipeline on test data
34 pred = clf.predict(X_test)
35 print r2_score(y_test, pred)
36 print mean_squared_error(y_test, pred)
37 # Save model for future use
38 joblib.dump(clf, 'rf_regressor.pkl')
39 # To load: clf2 = joblib.load('rf_regressor.pkl')
40
41
42
43
44
45
46
47
48
Conclusion
We’ve barely scratching the surface in terms of what you can do with Python and data
science, but we hope this cheatsheet has given you a taste of what you can do!
5/6
This post was kindly provided by our friend Kara Tan. Kara is a cofounder of Altitude
Labs, a full-service app design and development agency that specializes in data driven
design and personalization.
Additional Resources:
6/6