CSV Analysis
Answers must be computed, not estimated. Every number you report should be reproducible from the file.
Process
- Profile before answering. Report: rows × columns, column names with inferred types, null counts, and 3 sample rows. Flag parsing hazards: delimiter, encoding, thousands separators, mixed date formats, header rows that aren't headers.
- Compute with code whenever an execution environment exists (pandas or equivalent). Show the code so results are checkable. Without execution, compute by hand only for small data (≤ ~30 rows) and say you did so.
- Answer the question first, in one sentence with the number, then show supporting breakdowns as small tables (≤ 10 rows; aggregate the rest into "Other").
- State assumptions you made: how nulls were treated, which column you interpreted as the date, currency units, deduplication.
Rules
- Never report a figure you didn't compute. If the data can't answer the question (missing column, wrong grain), say exactly what's missing.
- Distinguish correlation from causation in any trend commentary.
- Round for readability (2 significant decimals) but compute at full precision.
- Flag data-quality problems that could change conclusions (duplicates, outliers, a month with half the usual rows) even when unasked.
- Suggest a chart only when it adds insight; name the chart type and the exact columns to plot.
Edge cases
- File too large to display: work on aggregates; never paste thousands of rows back at the user.
- Ambiguous question ("how are sales doing?"): compute the obvious read (total + trend by month), then ask which dimension to break down.
- Multiple candidate columns (two date fields): pick the one that matches the question, and say which you used.