← Back to list

My Villain Arc Began with a CSV File

Issue #1: The Call to Adventure Every comic book character has THAT moment. You know the one when everything begins to change? It starts…

Jordan Decker · 2026-05-25 22:44 · 0 claps · 6.7 min read
#rstudio #training-datasets #comic-books
Open on Medium ↗
Wiki topics: 🖊️ · Illustration & Drawing

My Villain Arc Began with a CSV File

Issue #1: The Call to Adventure Every comic book character has THAT moment. You know the one when everything begins to change? It starts with a strange artifact. A mysterious lab accident. A poorly supervised radioactive event.

Mine began with a comic book app and a CSV export that was coded in nonsense.

Originally, this project started with a simple question: how much is my comic book collection worth? I had been casually using the ComicSnap app to organize roughly 200 comic books. The app was exactly what I needed it to be. Scan the comic, receive the data, move on with life. If the app already contained all this information, surely I could export it into a spreadsheet and analyze it myself.

Reader, I could not.

What followed next involved multiple emails with customer support, references to privacy policies, and an eventual CSV export that technically contained my data but was completely useless. Until I enrolled in LIS 572. And thus, the origin story begins.

Issue #2: Into the Secret Lair The file I received from ComicSnap had all the useful information trapped inside a single JSON column. (Having access to data and not being able to use it is literally the stuff villain origins are made of.) At first, neither the dataset nor R seemed particularly interested in cooperating with me. Every time I fixed one problem, another revealed itself. Parsing the JSON exposed distorted pricing fields. Cleaning the pricing fields revealed inconsistent publisher names. Standardizing publishers exposed missing publication dates. Each round of cleanup uncovered a little more of the collection while simultaneously introducing a brand new problem to solve.

What I had believed would be a simple CSV export became a multi-stage transformation process involving JSON decoding, metadata restructuring, and enough formatting issues to permanently alter my relationship with quotation marks. Every step indicated we were inching closer and closer to my villain arc.

But somewhere during the repeated cycles of cleaning, testing, breaking, rebuilding, and questioning my own sanity, the project started to shift. The more problems I solved, the more readable both the dataset and R studio started to become. This initially hostile environment was suddenly beginning to feel…collaborative. Before I knew it, “Comic_Raw.csv” had evolved into something readable, functional, and substantially more useful: “Comic_Clean.csv.”

Issue #3: Building the Dataset However, cleaning the dataset was only the first step. Once I had a usable dataset, I had to decide what its final form would be. “Comic_Clean.csv” now contained standardized metadata fields including:

  • comic title
  • publisher
  • publication year
  • genre
  • era
  • rarity
  • estimated low value
  • estimated high value
  • estimated average value

Publisher names were standardized to reduce duplicate categories such as “Marvel” versus “Marvel Comics.” The “condition” column was removed entirely because every comic in the collection had been categorized as “near mint.” Publication dates were simplified into publication years for consistency, and title fields were merged to create more readable comic identifiers.

Not every problem was solved perfectly. During visualization work, I noticed that a small number of comic titles still included creator names in the title field. Because these inconsistencies affected a limited number of entries, I chose to document the issue rather than fully rebuild the metadata structure.

Some of my decisions were technical, but many were also preferential. Every adjustment changed the way the collection could be interpreted later. For example, removing columns simplified analysis for my purposes, but it also erased information. Choosing which inconsistencies to fix and which to merely document served my needs, but might not serve others in the same way. This dataset is a reflection of my own priorities, assumptions, and understanding of what I believe to be useful.

I used to think of datasets as objective collections of information. Working alongside “Comic_Clean.csv” highlighted how datasets are shaped by human judgment at nearly every stage of the process. I personally found this to be one of the most fascinating revelations from this project.

(For the full origin story of “Comic_Clean.csv”, see the companion Dataset Biography issue.)

Issue #4: The Longbox Reveals Its Secrets At this stage in my journey, I was feeling more hopeful than I had been. Perhaps this project would not lure me to the dark side after all. It was now time to begin exploring and visualizing the collection.

One of the clearest patterns in the collection was publisher dominance. DC Comics leads the collection overall, with Marvel close behind. While this was not entirely surprising given the makeup of my longboxes, visualizing the imbalance made the overall structure of the collection much easier to conceptualize (and show potential buyers).

The value distribution visualization revealed that most comics in the collection fell into lower estimated value tiers, with the majority valued under five dollars. A much smaller number of comics occupied significantly higher value categories, illustrating the uneven nature of collectible markets. While this is a common occurrence in comic book collecting, it’s still exciting to see that you have a few money makers that you didn’t spend a fortune on! Individually, most of these comics had seemed relatively insignificant, but together they formed a surprisingly valuable archive shaped by years of casual collecting decisions.

Finally, an interactive Plotly visualization highlights the comics with the highest estimated average values in the dataset. Unlike the static visualizations, the interactive chart allows individual comics to be explored through hover text containing full titles, publishers, publication years, and estimated values.

For the interactive version, click here: https://j0rdanuw.github.io/plotlyfinal/

For the interactive version, click here: https://j0rdanuw.github.io/plotlyfinal/

My comic collection previously existed as shelves, boxes, and vague collector memory. If I had to, I could SCROLL through the collection on my app, but honestly that’s not any better than flipping through a box. Once structured and visualized as data, however, the collection transformed into something much easier to analyze (and pitch). I can now consult my dataset, and with an assist from R, can answer any question potential buyers might have. The raw export alone could never have lived up to these expectations.

And now, I have an answer to my original question that started this entire project: what is this collection actually worth? The final dataset represents 215 comics with an estimated collection value of $1,630 at the median price tier or $2,342 at the top price tier.

Issue #5: Bonus Issue — Quick Side Quest While most comics in the dataset fell into the “Under $5” category, the visualizations revealed several standouts. Two comics in the collection carried estimated mint-condition values of approximately $100 each: *DC Comics Presents #47 — Superman and The Masters of the Universe: From Eternia with Death! and [Legion of Super-Heroes #1 — The Lad Who Wrecked the Legion!](https://dc.fandom.com/wiki/Legion_of_Super-Heroes_Vol_1_1) What surprised me even more, however, was discovering that one of the highest-value comics in the collection was a German-language issue: Wundergirl Sonderheft Nr. 27*, which carried a value of roughly $50.

And I know I built this collection, but I had no idea I had books worth this much in those boxes as I never spent more than $5 on a comic book! And I can not remember buying a German comic at all! (Gotta love a good plot twist). It was exciting to see the collection reveal little surprises that made the strenuous coding process worth it!

Issue #6: Alignment Shift We’ve entered that pivotal moment where our pending hero (me) has her epiphany.

Before this project, I mostly thought about data accessibility as a background issue tied to social media platforms, privacy policies, or large technology companies. Working directly with this dataset forced me to confront those ideas on a much smaller and more personal scale.

It also brought into focus how dependent users can become on proprietary systems that appear transparent on the surface, but limit meaningful portability outside the platform. Even though the comic book data belonged to me, accessing and using it required a surprising amount of technical knowledge, persistence, and experimentation. Simply obtaining a file was not enough. The data still needed to be transformed before it could be useful.

I also started realizing how much invisible labor goes into making data appear “easy” inside proprietary platforms. The app felt seamless because all of the difficult structuring work had already been hidden behind the interface. The moment the data left that secret lair environment, all of the formatting problems, inconsistencies, and structural assumptions were revealed.

That realization ultimately became the most important outcome of the project. What began as a comic book valuation experiment slowly turned into a much broader lesson about interoperability and the hidden systems shaping how people interact with their own information

Final Issue: The Next Story Arc If I had more time and resources, the next phase of this project would focus on expanding and enriching the dataset further. A future version of the dataset could involve more advanced title standardization, integration with external comic book databases, or additional interactive visualizations for collectors interested in valuation, cataloging, or resale preparation.

But honestly, the biggest thing this project changed was not the dataset. It changed the way I think about personal data access.

Ten weeks ago, I would have assumed that receiving a CSV export meant my data was accessible. Now I understand how large the gap can be between technically possessing information and being able to use it in a meaningful way. The experience unmasked the infrastructure behind invisible systems.

I may never fully trust CSV exports again, but I left the experience with a cleaner dataset, a slightly altered worldview, and one very hard-earned sidekick: “Comic_Clean.csv.”

And only heroes get sidekicks.


메타데이터
post_id
6d0e33e87029
slug
my-villain-arc-began-with-a-csv-file-6d0e33e87029
url
https://medium.com/@j0rdan_84624/my-villain-arc-began-with-a-csv-file-6d0e33e87029
canonical_url
https://medium.com/@j0rdan_84624/my-villain-arc-began-with-a-csv-file-6d0e33e87029
author_url
https://medium.com/@j0rdan_84624
status
ok
fetched_at
2026-07-13 06:23:13