Introduction

This project analyzes the top 10 meme coins from November 1, 2024, to May 1, 2025, using CoinGecko data. We explore price changes, trading volume, and volatility to identify top performers and risks. Tools used: Python, SQL (BigQuery), R, and Tableau.

Data Cleaning

The data was cleaned in R to fill missing daily price changes with 0 and remove rows with missing prices or volumes.

Analysis

Total Price Change

price_change <- read_csv("meme_coins_results.csv")
## Rows: 10 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): coin
## dbl (4): start_price, end_price, price_change_pct, avg_volume
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
print(head(price_change, 5))
## # A tibble: 5 × 5
##   coin      start_price  end_price price_change_pct  avg_volume
##   <chr>           <dbl>      <dbl>            <dbl>       <dbl>
## 1 dogecoin   0.162      0.172                  6.68 4614117173.
## 2 pepe       0.00000911 0.00000889            -2.44 2207913635.
## 3 bonk       0.0000202  0.0000196             -2.99  437308918.
## 4 shiba-inu  0.0000179  0.0000132            -26.1   913577363.
## 5 floki      0.000139   0.0000893            -35.6   336451193.
ggplot(price_change, aes(x = reorder(coin, price_change_pct), y = price_change_pct, fill = coin)) +
  geom_bar(stat = "identity") +
  coord_flip() +
  theme_minimal() +
  labs(title = "Total Price Change (%)", x = "Coin", y = "Price Change (%)")

Volatility

volatility <- read_csv("meme_coins_volatility.csv")
## Rows: 10 Columns: 2
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): coin
## dbl (1): volatility
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
print(head(volatility, 5))
## # A tibble: 5 × 2
##   coin       volatility
##   <chr>           <dbl>
## 1 popcat          10.4 
## 2 mog-coin         9.37
## 3 brett            9.26
## 4 bonk             8.05
## 5 dogwifcoin       7.60
ggplot(volatility, aes(x = reorder(coin, volatility), y = volatility, fill = coin)) +
  geom_bar(stat = "identity") +
  coord_flip() +
  theme_minimal() +
  labs(title = "Volatility of Meme Coins", x = "Coin", y = "Volatility")

Visualizations

Price Change vs. Volume

Price Change vs. Volume

Daily Price Change Distribution

Daily Price Changes

Tableau Dashboard

Explore interactive visualizations:

View Meme Coins Dashboard on Tableau Public