Asking AI to explain fees doesn’t mean you need to hand over your email, UID, or order number too. This time, I used two rows of fictional transaction records for a local test: only 3 of the 7 columns were exported, while the amount text and row count were preserved, and the original file was unchanged. The script can be copied, but anonymization isn’t guaranteed.

① Prepare: With Python 3 already installed, name a UTF-8, comma-separated CSV copy input.csv and place it in the same folder as the script. The demo headers are “Currency, Direction, Fee”; if your headers differ, edit keep first, and verify the fee units separately.

② Run: Open a terminal in that folder and execute python3 select_columns.py. The script exports selected.csv using the allowlist; no other columns are included automatically. If a specified column is missing, it stops; if a result with the same name already exists, it also stops to avoid overwriting.

③ Check: Open the output with a local text editor and confirm that it contains only the required columns. Then review each row to see whether any sensitive content remains. Two rows were still present in the test; 0.10 and 0.20 were not altered. This is synthetic data, not my own trades or returns.

④ Then decide whether to share it with AI: having fewer column names does not necessarily mean it cannot be identified. The combination of currency, direction, and amount could still reveal a strategy; if you only need an explanation of the rules, a small fictional sample is enough. No statements were uploaded, and no AI was tested.

The script runs locally, with no API or subscription fees; you need Python 3 installed to follow these steps directly. Share less data first, then consider automation. Which item on a statement would you usually want AI to check?

Appendix: Complete code to save as select_columns.py

import csv

from pathlib import Path

keep = ['Currency', 'Direction', 'Fee']

with open('input.csv', encoding='utf-8-sig', newline='') as f:

reader = csv.DictReader(f)

if not set(keep) <= set(reader.fieldnames or []):

raise ValueError('Missing allowlisted columns; stopping export')

rows = [{k: row[k] for k in keep} for row in reader]

with open('selected.csv', 'x', encoding='utf-8-sig', newline='') as f:

writer = csv.DictWriter(f, fieldnames=keep)

writer.writeheader()

writer.writerows(rows)

print(f'{len(rows)} rows; kept only {len(keep)} columns; original file unchanged')

Source: Python official csv documentation https://docs.python.org/3/library/csv.html

Verification date: 2026-10-28; input is synthetic data with no real account information.