HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
capitalone
DataProfiler
Python2021–2024
capitalone / DataProfiler

DataProfiler

What's in your data? Extract schema, statistics and entities from datasets

5Distinct people
29Mentions
0Explicit recommenders
1.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

What's in your data? Extract schema, statistics and entities from datasets

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year29 dated mentions

Observed mentions: 2021-03-26 23:41:50 UTC to 2024-02-22 19:54:27 UTC.

051015202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 22 mentions; 6 submissions, 16 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 5 mentions; 4 submissions, 1 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC22616
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC541
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC110
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101

What Hacker News says

29 sources
I really should write up how we did delimiter and quote detection in this library: https://github.com/capitalone/DataProfiler It turns out delimited files IMO are much harder to parse than say, JSON. Largely because they have so many different permutations. The article covers CSVs, but many files are tab or null separated. We’ve even seen @ separated with ‘ for quotes. Given the above, it should still be possible to use the method described. I’m guessing you’d have to detect the separators and quote chars first, however. You’d have to also handle empty rows and corrupted rows (which happen often enough).
In Fast CSV Processing with SIMD
Having used both ray, dask, and writing custom threads, my personal view is that while there are advantages I wouldn’t want to use any of these unless absolutely necessary. My personal approach for most of these tasks are to try to break down the problem to be as asynchronous as possible. Then you can create threads. The nice thing about dask is really the way you can effectively use it on pandas dataframe; Without any large overhead. Having said that, we opted to write our own parallelization for this library: https://github.com/capitalone/DataProfiler As opposed to using the dask frame. Effectively, the dataframe processing wasn’t the bottleneck and easier to maintain the threading ourselves given the particular approaches taken. That said, if I was working with large pandas dataframes, id likely use dask. For large datasets which coul
Read the rest
dn’t be stored in memory of use ray.io
In Dask – A flexible library for parallel computing in Python
It would be possible to build a similar system via a library my team has built: https://github.com/capitalone/dataprofiler Effectively, you can monitor changes between profiles: data1 = dp.Data("file_a.csv") # Load a CSV file profile1 = dp.Profiler(data1) # Generate a profile data2 = dp.Data("file_b.csv") # Load another CSV file profile2 = dp.Profiler(data2) # Generate another profile diff_report = profile1.diff(profile2) print(json.dumps(diff_report, indent=4)) The system we have generates reports, it might be worth adding it OP.
In Show HN: Graphsignal – Production Model Monitoring: Anomalies, Drift, Exceptions
Not exactly the same, but we wrote a library to easily load any delimited type of file and finds header (even if not first row). It also works to load JSON, Parquet, AVRO and loads it into a dataframe. Not CLI exactly, but pretty easy: https://github.com/capitalone/dataprofiler Can Install: pip install dataprofiler[ml] --user How it works: csv_data = Data('your_file.csv') # Load: delimited, JSON, Parquet, Avro csv_data.data.head(10) # Get head csv_data.data.sort_values(by='name', inplace=True) # Sort Anyway, pretty interesting Miller CLI. I'm not sure how the header detection works, especially if the header isn't the first row (which is often the case)
In Miller CLI – Like Awk, sed, cut, join, and sort for CSV, TSV and JSON
Having built a model to identify sensitive data having a solid data labeling solution would be awesome. I can attest this is a real problem. Here's the library we built: https://github.com/capitalone/DataProfiler In this space, Prodigy really dominates: https://prodi.gy/ We actually built our own internal system which integrates and can export the labels (does predictive labeling, etc). Of course, we only focused on text data at the moment. All that being said, this is going to become a crowded space and highly competitive. Plus, once the data is labeled companies often drop their labelers. I would recommend ensuring some consistent use. Potentially, hosting their models off-prem or something to lock companies in.
In Launch HN: Lightly (YC S21): Label only the data which improves your ML model

Showing the 15 most recent of 29 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.