Payment protectionDetails
- Revisions within the package are free.
- If you do not respond within 3 days of delivery, the work is accepted automatically.
The money is reserved when you pay and released only once you accept the work.

Example result
Merging the monthly sales files of 9 shops into one Excel report
How it is run
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO Folder: sales/2026-10, 9 files found
2026-11-02 09:14:03 INFO shop-01.csv: 1,284 rows
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 rows
2026-11-02 09:14:04 WARN shop-07.csv: 3 rows without a price skipped (lines 88, 412, 913)
2026-11-02 09:14:05 INFO Done: 10,412 rows -> report-2026-10.xlsx (sheets "Sales" and "Totals")
Settings, not code
The column names of each shop live in settings.ini, so a new shop or a renamed column is a line there:
[columns]
date = Date, Sale date, Day
product = Product, Item, Name
quantity = Qty, Quantity, Pcs
price = Price, Unit price
A part of the code
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""Reads one shop's file and gives it the report's column names."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: no column for '{name}' (looked for {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
Files: a ZIP archive with merge_sales.py (310 lines), settings.ini, requirements.txt and a README with installing Python, running the script and what each message in the log means. The client runs it on their own computer.
Client: a small chain of 9 stationery shops; each shop sends its sales for the month as a CSV or Excel file, with slightly different column names. Task: one script that reads every file in a folder, brings the columns to one shape, and writes a single Excel report with all sales and a sheet of totals by shop.
The client and all details are made up.
About this service
A table with hundreds of thousands of rows is hard to open, too big for an import form that takes 5,000 rows at a time, or has to be sent in parts to different people. This Python script splits it for you: into parts of a set number of rows, or by the value in a column, so each region, store or sales rep gets their own file. Each part keeps the header row and the column order, and the files are named the way you want, such as orders_north.xlsx. It reads CSV and Excel and saves either. Send us a few rows of the table and the rule. You run the script yourself on your computer, and the original file is never changed. It splits data; it does not check or fix the values in it.
What is included
- What you getA ZIP archive with the Python script, a README with step-by-step instructions and, from Standard, a settings file with the split rule and file names; the code is also shown on the order page.
- By rows or by columnEqual parts, or one file for each value
- Header in every partEach file opens and imports on its own
- Your file namesWith a number or the column value in the name
- Original untouchedParts are saved to a separate folder
- Readable codeWith comments, easy to change the rule later
How it works
- 1TaskYou send a few rows and say how to split the file
- 2CodeWe write the script and the guide to running it
- 3Try itYou run it on your file and check the parts
- 4ChangesYou ask for changes within your package and send any error message
What we need from you
The first 10-20 rows of the table as CSV or Excel (real names and numbers can be replaced), how many rows the full file has and how big it is, and the rule: so many rows per part, or one file per value of a column (name the column). How the parts should be named, CSV or Excel, and whether they go to separate files or sheets of one workbook. Your system: Windows, macOS or Linux.
We will ask you:
- Which file do you need to split?
- How should it be split?
- What should the parts be?
- Where will it run?
Compare packages
| Packages | BasicSplit by row count$16 | StandardSplit with settings$33 | PremiumSplitting tool$67 |
|---|---|---|---|
| Deadline | 1 day | 2 days | 3 days |
| Revisions | 1 | 2 | 3 |
| Code | up to 150 lines | up to 400 lines | up to 1,000 lines |
| Files of code | 1 | up to 3 | up to 8 |
| Settings file | No | Yes | Yes |
| Clear error messages and a log | No | Yes | Yes |
| Run options and a guide to running it on a schedule | No | No | Yes |
| Guide to installing and running it (README) | Yes | Yes | Yes |
| Language | Python | Python | Python |
| Order Basic | Order Standard | Order Premium |
Payment protection
You pay when you order, but the money is released only for accepted work.
- Fixed priceThe package price does not change after you pay.
- The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
- Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
- Free revisionsAsk for changes within your brief as many times as the package allows.
- Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
- Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
Questions and answers
Can it split a file Excel cannot open?
Yes, if it is a CSV: the script reads it line by line, so a file with millions of rows is fine. An .xlsx file has to fit Excel's own limit of 1,048,576 rows on a sheet.
Can it split by two columns at once?
Yes, from Standard: for example one file for each region and month. Tell us the columns and how the file names should look.
Will dates and leading zeros survive?
Yes, values are copied as text unless you ask otherwise, so codes like 00125 keep their zeros. Tell us which columns hold dates or numbers.
Will you split the file for me?
No. You run the script on your computer, so the full file stays with you. We only need a few sample rows.
Did not find your answer?