essay-coach / code /scripts /inspect_data.py
nonsodev's picture
code snapshot + README
e1679fa verified
Raw History Blame Contribute Delete
1.29 kB
"""Print the columns, row counts and a sample row of every CSV on the essay-data volume."""
import modal
app = modal.App("essay-coach-inspect")
vol = modal.Volume.from_name("essay-data")
image = modal.Image.debian_slim(python_version="3.11").pip_install("pandas", "openpyxl")
@app.function(image=image, volumes={"/data": vol}, timeout=900, memory=16384)
def inspect():
import glob
import os
import pandas as pd
for p in sorted(glob.glob("/data/**/*.csv", recursive=True)):
try:
df = pd.read_csv(p, low_memory=False)
except Exception as e:
print("==", p, "ERR", e); continue
print("==", p.replace("/data/", ""), f"{os.path.getsize(p)/1e6:.0f} MB rows {len(df)}")
print(" cols:", list(df.columns)[:40])
r = df.iloc[0]
print(" row0:", {c: (str(v)[:60] + ("..." if len(str(v)) > 60 else "")) for c, v in r.items()})
for c in df.columns:
if df[c].dtype == object and df[c].nunique() < 15:
print(f" {c}: {df[c].value_counts().to_dict()}")
print(open("/data/ELLIPSE-Corpus/README.md").read()[:1500])
for p in glob.glob("/data/**/*.zip", recursive=True):
print("zip:", p, os.path.getsize(p))
@app.local_entrypoint()
def main():
inspect.remote()