import csv import datetime import numpy as np import random # Remove existing 'retail_transactions.csv' file, if any ! rm -f /p/a/t/h retail_transactions.csv # Set the no of transactions and othet configs no_of_iterations = 1000000 data = [] csvFile = 'retail_transactions.csv' # Open a file in write mode with open(csvFile, 'w', newline='') as f: fieldnames = ['orderID', 'customerID', 'productID', 'state', 'paymentMthd', 'totalAmt', 'invoiceTime'] writer = csv.DictWriter(f, fieldnames=fieldnames) writer.writeheader() for num in range(no_of_iterations): # Create a transaction record with random values new_txn = { 'orderID': num, 'customerID': random.choice([100, random.randint(1, 100000)]), 'productID': np.random.randint(10000, size=random.randint(1, 5)).tolist(), 'state': random.choice(['CA', 'TX', 'FL', 'NY', 'PA', 'OTHERS']), 'paymentMthd': random.choice(['Credit card', 'Debit card', 'Digital wallet', 'Cash on delivery', 'Cryptocurrency']), 'totalAmt': round(random.random() * 5000, 2), 'invoiceTime': datetime.datetime.now().isoformat() } data.append(new_txn) writer.writerows(data)