Zsolt Szalai

Data Lab

Qu'est-ce qui me fait avancer ?

Créer quelque chose de nouveau chaque jour. J'adore concevoir des solutions numériques qui aident les particuliers et les entreprises à se développer et à prospérer. Je suis convaincu que « le meilleur projet sur lequel vous travaillerez, c'est vous », ce qui me permet d'apprendre constamment et d'explorer de nouvelles façons de relever les défis.

Créer quelque chose de nouveau chaque jour. J'adore concevoir des solutions numériques qui aident les particuliers et les entreprises à se développer et à prospérer. Je suis convaincu que « le meilleur projet sur lequel vous travaillerez, c'est vous », ce qui me permet d'apprendre constamment et d'explorer de nouvelles façons de relever les défis.

Qu'est-ce qui me fait avancer ?

Interactive Data Lab
Notebook
Data View
Visualizations
SQL Query

Drop your CSV/Excel file here or click to browse

Supports: CSV, Excel, JSON, Parquet

Python
SQL

Interactive Visualization

Date Sales Customers Revenue

${(file.size / 1024).toFixed(2)} KB • Click to change file

`; // Add AI message addAIMessage(`Great! I've loaded "${file.name}". I can see it contains data with ${Math.floor(Math.random() * 1000) + 100} rows. What would you like to analyze?`); } } // Run Code Function function runCode(button) { const codeCell = button.closest('.code-cell'); const output = codeCell.querySelector('.output'); const codeInput = codeCell.querySelector('.code-input'); output.style.display = 'block'; output.innerHTML = '
'; setTimeout(() => { // Simulate code execution const cellType = codeCell.querySelector('.cell-type').textContent; if (cellType === 'Python') { output.innerHTML = `
   date       sales  customers
0  2024-01-01  100.52      125
1  2024-01-02  98.73       134
2  2024-01-03  102.41      118
3  2024-01-04  105.22      142
4  2024-01-05  103.89      137

✓ Code executed successfully
`; } else if (cellType === 'SQL') { output.innerHTML = `
month       | total_sales | avg_customers
------------|-------------|---------------
2024-06-01  | 3,542.50    | 165.3
2024-05-01  | 3,128.75    | 152.7
2024-04-01  | 2,895.20    | 148.2

✓ Query executed: 3 rows returned
`; } }, 1000); } // Chat Functions function sendMessage() { const input = document.getElementById('chatInput'); const message = input.value.trim(); if (message) { addUserMessage(message); input.value = ''; // Simulate AI response setTimeout(() => { const responses = [ "I've analyzed your data and found an upward trend in sales with a 15% month-over-month growth. The correlation between customer count and sales is 0.87, which is quite strong.", "Here's a quick insight: Your best performing day is Tuesday with average sales 23% higher than other weekdays. Would you like me to create a visualization for this?", "I can create a predictive model for your sales. Based on the current trend, next month's projected sales are $18,450 ± $1,200.", "The data shows seasonal patterns. Q2 typically shows 30% higher performance. I can help you prepare for this trend." ]; const response = responses[Math.floor(Math.random() * responses.length)]; addAIMessage(response); }, 1000); } } function addUserMessage(message) { const chatMessages = document.getElementById('chatMessages'); const messageDiv = document.createElement('div'); messageDiv.className = 'message user'; messageDiv.textContent = message; chatMessages.appendChild(messageDiv); chatMessages.scrollTop = chatMessages.scrollHeight; } function addAIMessage(message) { const chatMessages = document.getElementById('chatMessages'); const messageDiv = document.createElement('div'); messageDiv.className = 'message ai'; messageDiv.innerHTML = message; chatMessages.appendChild(messageDiv); chatMessages.scrollTop = chatMessages.scrollHeight; } // Enter key support for chat document.getElementById('chatInput').addEventListener('keypress', (e) => { if (e.key === 'Enter') { sendMessage(); } }); // Tab switching document.querySelectorAll('.tab').forEach(tab => { tab.addEventListener('click', function() { document.querySelectorAll('.tab').forEach(t => t.classList.remove('active')); this.classList.add('active'); }); }); // Sidebar item switching document.querySelectorAll('.sidebar-item').forEach(item => { item.addEventListener('click', function() { document.querySelectorAll('.sidebar-item').forEach(i => i.classList.remove('active')); this.classList.add('active'); }); });