Visualization exercise on the success rate of Kickstarter projects using Tableau and Python
By: Szabolcs Szokoly
Tags: Python, Tableau, Data Science, Data Visualization, Kickstarter

Goal

Kickstarter is a global crowdfunding platform focused on creativity. It was founded in 2008 and has since raised over $775 million US for more than 48,000 projects. Project creators choose a deadline and a minimum funding goal. If the goal is not met by the deadline, no funds are collected. Creators categorize their projects into one of 13 main categories and 36 subcategories. They are: Art, Comics, Dance, Design, Fashion, Film and Video, Food, Games, Music, Photography, Publishing, Technology and Theater. The goal of this publication is to give the reader insights on a couple possible factors that could contribute to a project’s success or failure. Tableau Prep, Tableau and Python were used to process and visualize the data.

Data Source

The dataset was obtained from here in Tableau hyper format that includes all of the data from the most recent crawl by Web Robots and contains projects from May 2009 until the Nov 2019.

Cleaning

The cleaning was performed in two stages. Given the fact that the input format was proprietary (Tableau hyper) in the first stage the source file was opened with and pre-cleaned by Tableau Prep 2019.4 as follows:

Several columns were removed, (currency_symbol, photo, currency, currency_trailing_code, disable_communication, permission, source_url, slug, friends), which were either redundant or outright not required for the purpose of my investigation. Calculated fields were added to facilitate the further analysis of the data. To begin with new timestamp columns were created based on existing columns however in Unix time format, (creation_at, lauched_at, deadline), for example:

DATEADD(‘second’, [created_at], #1970–01–01#) Then the category and sub-category name were extracted from the category column using:

REGEXP_EXTRACT([category], ‘slug”:”(.*?)[“/]’)

and

REGEXP_EXTRACT([category], ‘slug”:”.*?/(.*?)”,”position’) Finally the data was written out to a CSV (Kickstart_Preped.csv) file for further processing in Python. Moving on to Python.

First duplicated rows were dropped but before that the dataFrame was sorted on backers_count so that from the duplicates only the rows with highest backers_count were kept and while the others got deleted.

Removing duplicate rows

Then columns not required for the analysis were dropped and at the same time the resulting data were assigned to a new dataFrame.

Dropping unnecessary columns

In the next step a new column top3_subcategory was created which contains the sub_category label of the project if the sub_category is one of the top 3 most frequent subcategories within its main category. To achieve this the projects were grouped by category and sub_category to get the percentage of frequencies of each sub_category.

Grouping categories by number of occurrence

Then the new column was added by applying a lambda function to each row which assigned the sub_category to top3_subcategory if the sub_category was one of the top3 most frequent within that category. This column is used in Q1 to label the bar chart with the top3 subcategory names.

Adding top3_subcategory column

As the last step of wrangling one more new column was created which captures the average pledge amount by a backer for the project. This gives us the insight of how much backers on average give to each project from which a new mean/median statistics can be calculated.

Adding mean_backer_pledge column

Lastly the dataFrame was written out to a CSV file for the visualization exercise in Tableau.

Writing dataFrame to CSV file

Data Analysis

During the analysis I wanted to focus on various aspects of a project that may contribute to it becoming successful or the opposite. For this reason I filtered out all other projects that were not in “successful” or ”failed” state. Also I wanted to gain insights which were geographically neutral as project creators do not or cannot change location, country for the purpose of launching a project. Therefore for all visualization in Tableau a filter was applied which only allowed projects in “successful” or ”failed” state to pass through.

Q1. Are there easy or hard categories to be successful in?