sowmiyan-s commited on
Commit
e96d049
·
1 Parent(s): 96c6dd9

Fix telemetry timeout and prepare for deployment

Browse files
README.md CHANGED
@@ -36,6 +36,7 @@ pinned: false
36
  - Run: `python crew.py`
37
  - Outputs: `outputs/op.py`, `index.html`
38
  - Agents: `agents/` — each agent defines its LLM model and endpoint.
 
39
 
40
  ## Quick Start
41
 
@@ -55,6 +56,8 @@ python crew.py
55
 
56
  ## Deploying to Hugging Face Spaces
57
 
 
 
58
  1. **Create a New Space**:
59
  * Go to [huggingface.co/spaces](https://huggingface.co/spaces).
60
  * Click **Create new Space**.
 
36
  - Run: `python crew.py`
37
  - Outputs: `outputs/op.py`, `index.html`
38
  - Agents: `agents/` — each agent defines its LLM model and endpoint.
39
+ - **Live Demo**: [Hugging Face Space](https://huggingface.co/spaces/sowmiyan-s/Multi-Agent-Data-Analysis-with-CrewAI)
40
 
41
  ## Quick Start
42
 
 
56
 
57
  ## Deploying to Hugging Face Spaces
58
 
59
+ **[View Live Demo](https://huggingface.co/spaces/sowmiyan-s/Multi-Agent-Data-Analysis-with-CrewAI)**
60
+
61
  1. **Create a New Space**:
62
  * Go to [huggingface.co/spaces](https://huggingface.co/spaces).
63
  * Click **Create new Space**.
TODO.md DELETED
@@ -1,16 +0,0 @@
1
- # TODO: Future Enhancements
2
-
3
- ## Planned Features
4
- - [ ] **Support Multiple File Formats**: Add support for Excel (.xlsx), JSON, and Parquet files.
5
- - [ ] **Advanced Visualizations**: Integrate Plotly for interactive charts in the HTML report.
6
- - [ ] **Custom Agent Builder**: Allow users to define custom agents via a UI or config file.
7
- - [ ] **Cloud Deployment**: Create a Dockerfile and deployment guide for AWS/GCP.
8
- - [ ] **API Endpoint**: Wrap the system in a FastAPI backend for external integration.
9
-
10
- ## Completed Tasks
11
- - [x] **Rebranding**: Renamed project to "Multi Agent Data Analysis with Crew AI".
12
- - [x] **Agent Upgrade**: Enhanced Validator and Insights agents for "Data Analysis as a Service" quality.
13
- - [x] **Token Optimization**: Reduced LLM costs by optimizing context injection.
14
- - [x] **Professional UI**: Redesigned `index.html` with a premium dark theme and visual scorecards.
15
- - [x] **Documentation**: Updated README, CHANGELOG, and USAGE guides.
16
- - [x] **Licensing**: Added MIT License and copyright headers.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
__pycache__/crew.cpython-310.pyc CHANGED
Binary files a/__pycache__/crew.cpython-310.pyc and b/__pycache__/crew.cpython-310.pyc differ
 
agents/__init__.py ADDED
File without changes
agents/__pycache__/cleaner.cpython-310.pyc CHANGED
Binary files a/agents/__pycache__/cleaner.cpython-310.pyc and b/agents/__pycache__/cleaner.cpython-310.pyc differ
 
agents/__pycache__/code_gen.cpython-310.pyc DELETED
Binary file (1.31 kB)
 
agents/__pycache__/insights.cpython-310.pyc CHANGED
Binary files a/agents/__pycache__/insights.cpython-310.pyc and b/agents/__pycache__/insights.cpython-310.pyc differ
 
agents/__pycache__/relation.cpython-310.pyc CHANGED
Binary files a/agents/__pycache__/relation.cpython-310.pyc and b/agents/__pycache__/relation.cpython-310.pyc differ
 
agents/__pycache__/validator.cpython-310.pyc CHANGED
Binary files a/agents/__pycache__/validator.cpython-310.pyc and b/agents/__pycache__/validator.cpython-310.pyc differ
 
agents/cleaner.py CHANGED
@@ -5,12 +5,15 @@
5
  from crewai import Agent, LLM
6
  from config.llm_config import get_llm_params
7
 
 
 
8
  cleaner_agent = Agent(
9
  name="Data Cleaner",
10
  role="Clean dataset",
11
  backstory="A no-nonsense data mechanic who hates messy CSVs. You grew up debugging trash datasets and built a rep for turning corrupt data into clean, analysis-ready gold.",
12
  goal="List the data cleaning steps performed, one per line. Be concise. DO NOT use JSON. Example:\n- Removed duplicates\n- Filled missing values",
13
  llm=LLM(**get_llm_params()),
 
14
  verbose=True
15
  )
16
 
 
5
  from crewai import Agent, LLM
6
  from config.llm_config import get_llm_params
7
 
8
+ from tools.dataset_tools import DatasetTools
9
+
10
  cleaner_agent = Agent(
11
  name="Data Cleaner",
12
  role="Clean dataset",
13
  backstory="A no-nonsense data mechanic who hates messy CSVs. You grew up debugging trash datasets and built a rep for turning corrupt data into clean, analysis-ready gold.",
14
  goal="List the data cleaning steps performed, one per line. Be concise. DO NOT use JSON. Example:\n- Removed duplicates\n- Filled missing values",
15
  llm=LLM(**get_llm_params()),
16
+ tools=[DatasetTools.read_dataset_head, DatasetTools.get_dataset_info],
17
  verbose=True
18
  )
19
 
agents/code_gen.py DELETED
@@ -1,28 +0,0 @@
1
- # Multi Agent Data Analysis with Crew AI
2
- # Copyright (c) 2025 Sowmiyan S
3
- # Licensed under the MIT License
4
-
5
- from crewai import Agent, LLM
6
- from config.llm_config import get_llm_params
7
-
8
- code_gen_agent = Agent(
9
- name="Code Generator",
10
- role="Write visualization code",
11
- goal="""Generate a COMPLETE, EXECUTABLE Python script. REQUIRED STRUCTURE:
12
- 1. Import: import pandas as pd, import matplotlib.pyplot as plt, import seaborn as sns
13
- 2. Load data: df = pd.read_csv('data/cleaned_csv.csv')
14
- 3. Create figure: plt.figure(figsize=(10, 6))
15
- 4. Generate plot using the column names from the relations task
16
- 5. Save: plt.savefig('outputs/plot.png', bbox_inches='tight', dpi=300)
17
- 6. Close: plt.close()
18
-
19
- RULES: NO plt.show(), NO dropping rows, NO removing outliers. Output ONLY the Python code in a ```python code block. NO explanations.""",
20
- backstory="You are a Data Visualization Expert who trusts the data. You believe that 'cleaning' often destroys valuable information. You NEVER delete rows or filter data. You are a master of Seaborn and Matplotlib, capable of generating any chart type (Bar, Box, Hist, Heatmap) with perfect syntax.",
21
- allow_delegation=False,
22
- llm=LLM(**get_llm_params()),
23
- verbose=True
24
- )
25
-
26
- # Multi Agent Data Analysis with Crew AI
27
- # Copyright (c) 2025 Sowmiyan S
28
- # Licensed under the MIT License
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
agents/insights.py CHANGED
@@ -5,12 +5,15 @@
5
  from crewai import Agent, LLM
6
  from config.llm_config import get_llm_params
7
 
 
 
8
  insights_agent = Agent(
9
  name="Business Intelligence Analyst",
10
  role="Derive actionable insights from data analysis results",
11
  goal="Generate 5 key business insights from the data analysis. List them as numbered points. DO NOT use JSON. Example:\n1. First insight\n2. Second insight\n...",
12
  backstory="You are a seasoned BI Analyst. You don't need to see every row to understand the story. You look at the column names, the identified relationships, and the data quality report to infer the underlying trends and business implications.",
13
  llm=LLM(**get_llm_params()),
 
14
  verbose=True
15
  )
16
 
 
5
  from crewai import Agent, LLM
6
  from config.llm_config import get_llm_params
7
 
8
+ from tools.dataset_tools import DatasetTools
9
+
10
  insights_agent = Agent(
11
  name="Business Intelligence Analyst",
12
  role="Derive actionable insights from data analysis results",
13
  goal="Generate 5 key business insights from the data analysis. List them as numbered points. DO NOT use JSON. Example:\n1. First insight\n2. Second insight\n...",
14
  backstory="You are a seasoned BI Analyst. You don't need to see every row to understand the story. You look at the column names, the identified relationships, and the data quality report to infer the underlying trends and business implications.",
15
  llm=LLM(**get_llm_params()),
16
+ tools=[DatasetTools.read_dataset_head, DatasetTools.get_dataset_info, DatasetTools.get_correlation_matrix],
17
  verbose=True
18
  )
19
 
agents/relation.py CHANGED
@@ -5,6 +5,8 @@
5
  from crewai import Agent, LLM
6
  from config.llm_config import get_llm_params
7
 
 
 
8
  relation_agent = Agent(
9
  name="Analyst",
10
  role="Analyze dataset and identify key relationships",
@@ -12,6 +14,7 @@ relation_agent = Agent(
12
  backstory="You are a precise Data Analyst. You strictly follow formatting instructions. You NEVER invent column names. You ONLY output the requested list.",
13
  allow_delegation=False,
14
  llm=LLM(**get_llm_params()),
 
15
  verbose=True
16
  )
17
 
 
5
  from crewai import Agent, LLM
6
  from config.llm_config import get_llm_params
7
 
8
+ from tools.dataset_tools import DatasetTools
9
+
10
  relation_agent = Agent(
11
  name="Analyst",
12
  role="Analyze dataset and identify key relationships",
 
14
  backstory="You are a precise Data Analyst. You strictly follow formatting instructions. You NEVER invent column names. You ONLY output the requested list.",
15
  allow_delegation=False,
16
  llm=LLM(**get_llm_params()),
17
+ tools=[DatasetTools.read_dataset_head, DatasetTools.get_correlation_matrix],
18
  verbose=True
19
  )
20
 
agents/validator.py CHANGED
@@ -5,12 +5,15 @@
5
  from crewai import Agent, LLM
6
  from config.llm_config import get_llm_params
7
 
 
 
8
  validator_agent = Agent(
9
  name="Dataset Validator",
10
  role="Validate dataset usability",
11
  goal="Validate if the dataset is suitable for analysis. Output plain text ONLY. DO NOT use JSON. Output:\nDecision: YES or NO\nReason: Brief explanation",
12
  backstory="A strict dataset gatekeeper. You don't sugarcoat garbage data. If a dataset sucks, you shut the whole pipeline down without hesitation.",
13
  llm=LLM(**get_llm_params()),
 
14
  verbose=True
15
  )
16
 
 
5
  from crewai import Agent, LLM
6
  from config.llm_config import get_llm_params
7
 
8
+ from tools.dataset_tools import DatasetTools
9
+
10
  validator_agent = Agent(
11
  name="Dataset Validator",
12
  role="Validate dataset usability",
13
  goal="Validate if the dataset is suitable for analysis. Output plain text ONLY. DO NOT use JSON. Output:\nDecision: YES or NO\nReason: Brief explanation",
14
  backstory="A strict dataset gatekeeper. You don't sugarcoat garbage data. If a dataset sucks, you shut the whole pipeline down without hesitation.",
15
  llm=LLM(**get_llm_params()),
16
+ tools=[DatasetTools.read_dataset_head, DatasetTools.get_dataset_info],
17
  verbose=True
18
  )
19
 
app.py CHANGED
@@ -13,6 +13,10 @@ from PIL import Image
13
  from crew import run_crew
14
  import numpy as np
15
 
 
 
 
 
16
  # Set page config
17
  st.set_page_config(
18
  page_title="Agentic Data Analyst",
@@ -314,17 +318,19 @@ def main():
314
  with open(file_path, "wb") as f:
315
  f.write(uploaded_file.getbuffer())
316
 
317
- st.success(f"✅ File uploaded successfully: {uploaded_file.name}")
318
-
319
- # Preview
320
- df = pd.read_csv(file_path)
321
- with st.expander("📊 Preview Dataset"):
322
- st.dataframe(df.head())
323
 
324
- # Analysis Button
325
- if st.button("🚀 Start Analysis"):
 
 
 
 
 
 
326
  st.markdown("---")
327
- st.markdown("### 🔄 Analysis in Progress")
328
 
329
  # Container for logs
330
  log_container = st.empty()
@@ -356,98 +362,68 @@ def main():
356
  # Run analysis
357
  with contextlib.redirect_stdout(StreamlitLogger()):
358
  try:
359
- with st.spinner("🤖 Agents are working..."):
360
  result = run_crew(str(file_path))
361
 
362
  if result:
363
- st.session_state['analysis_result'] = result
364
- st.markdown("---")
365
- st.success("### ✅ Analysis Complete!")
366
- st.balloons()
367
-
368
- # Display Results
369
- st.markdown("## 📊 Analysis Results")
370
-
371
- # Dataset Preview
372
- st.markdown("### 🔍 Dataset Preview")
373
- st.dataframe(result['dataframe'].head(50))
374
-
375
- # Cleaning Steps
376
- st.markdown("### 🧹 Data Cleaning Steps")
377
- display_text_as_bullets(result['cleaning_steps'], "🔹")
378
-
379
- # Validation
380
- st.markdown("### ✅ Dataset Validation")
381
- val_text = result['validation']
382
- if "Decision:" in val_text:
383
- parts = val_text.split("Decision:")
384
- if len(parts) > 1:
385
- decision_part = parts[1].split("Reason:")[0].strip()
386
- reason_part = val_text.split("Reason:")[1].strip() if "Reason:" in val_text else ""
387
-
388
- color = "#10b981" if "YES" in decision_part.upper() else "#ef4444"
389
- st.markdown(f"""
390
- <div style="padding: 15px; border-left: 5px solid {color}; background: rgba(255,255,255,0.05); border-radius: 5px;">
391
- <h4 style="margin:0; color:{color}">Decision: {decision_part}</h4>
392
- <p style="margin-top:10px;">{reason_part}</p>
393
- </div>
394
- """, unsafe_allow_html=True)
395
- else:
396
- st.text(val_text)
397
-
398
- # Relations
399
- st.markdown("### 🔗 Column Relations")
400
- display_relations(result['relations'])
401
-
402
- # Visualizations
403
- render_visualizations(result['dataframe'], key_prefix="main")
404
-
405
- # Generated Code Info
406
- st.markdown("### ⚙️ Visualization Method")
407
- st.info(result.get('code', 'Automatic visualization generation'))
408
-
409
- # Insights
410
- st.markdown("### 💡 Key Insights")
411
- display_text_as_bullets(result['insights'], "✨")
412
 
413
  except Exception as e:
414
  st.error(f"❌ An error occurred: {str(e)}")
415
  st.exception(e)
416
-
417
- # Display stored results if available
418
- elif 'analysis_result' in st.session_state:
419
- result = st.session_state['analysis_result']
420
- st.markdown("## 📊 Analysis Results (Cached)")
421
- st.dataframe(result['dataframe'].head(50))
422
-
423
- st.markdown("### 🧹 Data Cleaning Steps")
424
- display_text_as_bullets(result['cleaning_steps'], "🔹")
425
 
426
- st.markdown("### ✅ Dataset Validation")
427
- val_text = result['validation']
428
- if "Decision:" in val_text:
429
- parts = val_text.split("Decision:")
430
- if len(parts) > 1:
431
- decision_part = parts[1].split("Reason:")[0].strip()
432
- reason_part = val_text.split("Reason:")[1].strip() if "Reason:" in val_text else ""
433
-
434
- color = "#10b981" if "YES" in decision_part.upper() else "#ef4444"
435
- st.markdown(f"""
436
- <div style="padding: 15px; border-left: 5px solid {color}; background: rgba(255,255,255,0.05); border-radius: 5px;">
437
- <h4 style="margin:0; color:{color}">Decision: {decision_part}</h4>
438
- <p style="margin-top:10px;">{reason_part}</p>
439
- </div>
440
- """, unsafe_allow_html=True)
441
- else:
442
- st.text(val_text)
443
-
444
- st.markdown("### 🔗 Column Relations")
445
- display_relations(result['relations'])
446
-
447
- render_visualizations(result['dataframe'], key_prefix="cached")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
448
 
449
- st.markdown("### 💡 Key Insights")
450
- display_text_as_bullets(result['insights'], "✨")
 
 
 
 
 
451
 
452
  if __name__ == "__main__":
453
  main()
 
13
  from crew import run_crew
14
  import numpy as np
15
 
16
+ # Disable CrewAI Telemetry
17
+ os.environ["CREWAI_TELEMETRY_OPT_OUT"] = "true"
18
+ os.environ["OTEL_SDK_DISABLED"] = "true"
19
+
20
  # Set page config
21
  st.set_page_config(
22
  page_title="Agentic Data Analyst",
 
318
  with open(file_path, "wb") as f:
319
  f.write(uploaded_file.getbuffer())
320
 
321
+ # Check if we need to run analysis (new file or no result yet)
322
+ current_file_key = f"analysis_done_{uploaded_file.name}"
 
 
 
 
323
 
324
+ if current_file_key not in st.session_state:
325
+ st.success(f"✅ File uploaded successfully: {uploaded_file.name}")
326
+
327
+ # Preview
328
+ df = pd.read_csv(file_path)
329
+ with st.expander("📊 Preview Dataset", expanded=True):
330
+ st.dataframe(df.head())
331
+
332
  st.markdown("---")
333
+ st.markdown("### 🔄 Auto-Starting Analysis...")
334
 
335
  # Container for logs
336
  log_container = st.empty()
 
362
  # Run analysis
363
  with contextlib.redirect_stdout(StreamlitLogger()):
364
  try:
365
+ with st.spinner("🤖 Agents are analyzing your data..."):
366
  result = run_crew(str(file_path))
367
 
368
  if result:
369
+ st.session_state[current_file_key] = result
370
+ st.session_state['current_active_file'] = current_file_key
371
+ st.rerun()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
372
 
373
  except Exception as e:
374
  st.error(f"❌ An error occurred: {str(e)}")
375
  st.exception(e)
 
 
 
 
 
 
 
 
 
376
 
377
+ # Display Results if available
378
+ elif current_file_key in st.session_state:
379
+ result = st.session_state[current_file_key]
380
+
381
+ st.success("### ✅ Analysis Complete!")
382
+
383
+ # Display Results
384
+ st.markdown("## 📊 Analysis Results")
385
+
386
+ # Dataset Preview
387
+ st.markdown("### 🔍 Dataset Preview")
388
+ st.dataframe(result['dataframe'].head(50))
389
+
390
+ # Cleaning Steps
391
+ st.markdown("### 🧹 Data Cleaning Steps")
392
+ display_text_as_bullets(result['cleaning_steps'], "🔹")
393
+
394
+ # Validation
395
+ st.markdown("### ✅ Dataset Validation")
396
+ val_text = result['validation']
397
+ if "Decision:" in val_text:
398
+ parts = val_text.split("Decision:")
399
+ if len(parts) > 1:
400
+ decision_part = parts[1].split("Reason:")[0].strip()
401
+ reason_part = val_text.split("Reason:")[1].strip() if "Reason:" in val_text else ""
402
+
403
+ color = "#10b981" if "YES" in decision_part.upper() else "#ef4444"
404
+ st.markdown(f"""
405
+ <div style="padding: 15px; border-left: 5px solid {color}; background: rgba(255,255,255,0.05); border-radius: 5px;">
406
+ <h4 style="margin:0; color:{color}">Decision: {decision_part}</h4>
407
+ <p style="margin-top:10px;">{reason_part}</p>
408
+ </div>
409
+ """, unsafe_allow_html=True)
410
+ else:
411
+ st.text(val_text)
412
+
413
+ # Relations
414
+ st.markdown("### 🔗 Column Relations")
415
+ display_relations(result['relations'])
416
+
417
+ # Visualizations
418
+ render_visualizations(result['dataframe'], key_prefix="main")
419
 
420
+ # Generated Code Info
421
+ st.markdown("### ⚙️ Visualization Method")
422
+ st.info(result.get('code', 'Automatic visualization generation'))
423
+
424
+ # Insights
425
+ st.markdown("### 💡 Key Insights")
426
+ display_text_as_bullets(result['insights'], "✨")
427
 
428
  if __name__ == "__main__":
429
  main()
blog.txt DELETED
@@ -1,78 +0,0 @@
1
- # 🚀 Revolutionizing Data Science: Building a Multi-Agent Data Analysis System with CrewAI
2
-
3
- *By Sowmiyan S*
4
-
5
- In the world of data science, the journey from raw data to actionable insights is often long, tedious, and prone to human error. We spend 80% of our time cleaning data and only 20% analyzing it. But what if we could flip that script? What if we could hire a team of expert AI agents to handle the grunt work for us?
6
-
7
- Enter **Multi-Agent Data Analysis with CrewAI** — a project designed to automate the entire data analysis pipeline, from cleaning to visualization to strategic insight generation.
8
-
9
- In this post, I'll take you behind the scenes of this open-source project, exploring its workflow, the technology stack, and why this "Data Analysis as a Service" model is the future of business intelligence.
10
-
11
- ---
12
-
13
- ## 🤖 The Concept: A Digital Data Team
14
-
15
- Imagine having a team of specialized data professionals sitting on your laptop, ready to work 24/7. That's exactly what this system builds. Instead of a single AI trying to do everything (and often hallucinating), we break the process down into distinct roles handled by specialized agents.
16
-
17
- This project leverages **CrewAI** to orchestrate a swarm of agents, each with a specific personality, goal, and set of tools.
18
-
19
- ## 🔄 The Workflow: How It Works
20
-
21
- The magic happens in a sequential pipeline where the output of one agent becomes the input for the next. Here is the step-by-step workflow:
22
-
23
- ### 1. The Data Mechanic (Cleaner Agent)
24
- **Role:** Data Cleaner
25
- **Mission:** "Garbage in, garbage out" is the enemy. This agent takes the raw CSV file and performs rigorous cleaning. It removes duplicates, handles missing values (using mean for numeric and mode for categorical data), and standardizes formats. It doesn't just clean; it documents every step so you have a full audit trail.
26
-
27
- ### 2. The Gatekeeper (Validator Agent)
28
- **Role:** Dataset Validator
29
- **Mission:** Before any analysis begins, this agent performs a quality check. Is the dataset large enough? Are there too many missing values? If the data isn't up to par, the Validator has the power to stop the entire pipeline, saving you from wasting compute resources on bad data.
30
-
31
- ### 3. The Visionary (Relationship Analyst)
32
- **Role:** Relationship Analyst
33
- **Mission:** This agent looks at the clean data and identifies meaningful relationships between columns. It decides *how* to visualize the data—suggesting scatter plots for correlations, bar charts for categorical comparisons, or heatmaps for complex patterns. It acts as the architect of the visual story.
34
-
35
- ### 4. The Artist (Code Generator Agent)
36
- **Role:** Code Generator
37
- **Mission:** Taking the instructions from the Analyst, this agent writes production-ready Python code using **Matplotlib** and **Seaborn**. It ensures the code is bug-free and aesthetically pleasing, generating the actual charts that will appear in the final report.
38
-
39
- ### 5. The Strategist (Business Intelligence Analyst)
40
- **Role:** BI Analyst
41
- **Mission:** Finally, this agent looks at the aggregate findings—the cleaning logs, the validation report, and the discovered relationships—to synthesize high-level business insights. It answers the "So what?" question, turning charts into strategy.
42
-
43
- ---
44
-
45
- ## 🛠️ Under the Hood: The Tech Stack
46
-
47
- This project is built on a robust, modern stack designed for flexibility and performance:
48
-
49
- * **CrewAI:** The backbone framework for orchestrating the agent swarm.
50
- * **Pandas:** The industry standard for data manipulation and analysis.
51
- * **Matplotlib & Seaborn:** For generating high-quality, publication-ready visualizations.
52
- * **LLM Agnostic:** The system is designed to work with various LLM providers. You can power it with **Groq** for speed, **OpenAI** for precision, or **Ollama** for local privacy.
53
-
54
- ## 🌟 Why This Matters: The Advantages
55
-
56
- ### 1. Consistency & Speed
57
- Humans get tired; agents don't. This system applies the same rigorous standards to every single dataset, every single time, in a fraction of the time it takes a human analyst.
58
-
59
- ### 2. "No-Code" Analysis
60
- For non-technical users, this is a game-changer. You don't need to know Python or SQL. Just drop a CSV file into the folder, run the script, and get a professional HTML report.
61
-
62
- ### 3. Modular & Scalable
63
- Because it's built on agents, it's incredibly easy to extend. Need a new type of analysis? Just add a new agent to the crew. The modular design means the system grows with your needs.
64
-
65
- ## 💡 Real-World Applications
66
-
67
- * **Rapid Prototyping:** Data scientists can use this to get a "first look" at a new dataset in minutes.
68
- * **SME Business Intelligence:** Small businesses without a data team can get professional-grade insights from their sales or customer data.
69
- * **Data Quality Audits:** Use the Validator agent as a standalone tool to screen incoming data streams.
70
- * **Education:** A perfect tool for students to learn how a professional data analysis workflow is structured.
71
-
72
- ## 🚀 Conclusion
73
-
74
- The "Multi-Agent Data Analysis with CrewAI" project isn't just a tool; it's a glimpse into the future of work. By combining the reasoning capabilities of LLMs with the structural power of agentic workflows, we can automate complex cognitive tasks that were previously the exclusive domain of human experts.
75
-
76
- Ready to try it out? The project is open-source and available now. Clone the repo, drop in your data, and watch your digital data team go to work!
77
-
78
- *Happy Coding!*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
config/__pycache__/__init__.cpython-310.pyc CHANGED
Binary files a/config/__pycache__/__init__.cpython-310.pyc and b/config/__pycache__/__init__.cpython-310.pyc differ
 
crew.py CHANGED
@@ -13,6 +13,10 @@ from dotenv import load_dotenv
13
 
14
  load_dotenv()
15
 
 
 
 
 
16
  logging.getLogger("urllib3").setLevel(logging.ERROR)
17
  logging.getLogger("opentelemetry").setLevel(logging.ERROR)
18
 
 
13
 
14
  load_dotenv()
15
 
16
+ # Disable CrewAI Telemetry to prevent timeouts
17
+ os.environ["CREWAI_TELEMETRY_OPT_OUT"] = "true"
18
+ os.environ["OTEL_SDK_DISABLED"] = "true"
19
+
20
  logging.getLogger("urllib3").setLevel(logging.ERROR)
21
  logging.getLogger("opentelemetry").setLevel(logging.ERROR)
22
 
data/sugar.csv ADDED
@@ -0,0 +1,769 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Age,Pregnancies,Glucose,BloodPressure (mg/dL),SkinThickness,Insulin,BMI,DiabetesPedigreeFunction
2
+ 50,6,148,72,35,0,33.6,627
3
+ 31,1,85,66,29,0,26.6,351
4
+ 32,8,183,64,0,0,23.3,672
5
+ 21,1,1,66,23,94,28.1,167
6
+ 33,0,137,40,35,168,43.1,2.288
7
+ 30,5,116,74,0,0,25.6,201
8
+ 26,3,78,50,32,88,31,248
9
+ 29,10,115,0,0,0,35.3,134
10
+ 53,2,197,70,45,543,30.5,158
11
+ 54,8,125,96,0,0,0,232
12
+ 30,4,110,92,0,0,37.6,191
13
+ 34,10,168,74,0,0,38,537
14
+ 57,10,139,80,0,0,27.1,1.441
15
+ 59,1,189,60,23,846,30.1,398
16
+ 51,5,166,72,19,175,25.8,587
17
+ 32,7,100,0,0,0,30,484
18
+ 31,0,118,84,47,230,45.8,551
19
+ 31,7,107,74,0,0,29.6,254
20
+ 33,1,103,30,38,83,43.3,183
21
+ 32,1,115,70,30,96,34.6,529
22
+ 27,3,126,88,41,235,39.3,704
23
+ 50,8,99,84,0,0,35.4,388
24
+ 41,7,196,90,0,0,39.8,451
25
+ 29,9,119,80,35,0,29,263
26
+ 51,11,143,94,33,146,36.6,254
27
+ 41,10,125,70,26,115,31.1,205
28
+ 43,7,147,76,0,0,39.4,257
29
+ 22,1,97,66,15,140,23.2,487
30
+ 57,13,145,82,19,110,22.2,245
31
+ 38,5,117,92,0,0,34.1,337
32
+ 60,5,109,75,26,0,36,546
33
+ 28,3,158,76,36,245,31.6,851
34
+ 22,3,88,58,11,54,24.8,267
35
+ 28,6,92,92,0,0,19.9,188
36
+ 45,10,122,78,31,0,27.6,512
37
+ 33,4,103,60,33,192,24,966
38
+ 35,11,138,76,0,0,33.2,0.42
39
+ 46,9,102,76,37,0,32.9,665
40
+ 27,2,90,68,42,0,38.2,503
41
+ 56,4,111,72,47,207,37.1,1.39
42
+ 26,3,180,64,25,70,34,271
43
+ 37,7,133,84,0,0,40.2,696
44
+ 48,7,106,92,18,0,22.7,235
45
+ 54,9,171,110,24,240,45.4,721
46
+ 40,7,159,64,0,0,27.4,294
47
+ 25,0,180,66,39,0,42,1.893
48
+ 29,1,146,56,0,0,29.7,564
49
+ 22,2,71,70,27,0,28,586
50
+ 31,7,103,66,32,0,39.1,344
51
+ 24,7,105,0,0,0,0,305
52
+ 22,1,103,80,11,82,19.4,491
53
+ 26,1,101,50,15,36,24.2,526
54
+ 30,5,88,66,21,23,24.4,342
55
+ 58,8,176,90,34,300,33.7,467
56
+ 42,7,150,66,42,342,34.7,718
57
+ 21,1,73,50,10,0,23,248
58
+ 41,7,187,68,39,304,37.7,254
59
+ 31,0,100,88,60,110,46.8,962
60
+ 44,0,146,82,0,0,40.5,1.781
61
+ 22,0,105,64,41,142,41.5,173
62
+ 21,2,84,0,0,0,0,304
63
+ 39,8,133,72,0,0,32.9,0.27
64
+ 36,5,44,62,0,0,25,587
65
+ 24,2,141,58,34,128,25.4,699
66
+ 42,7,114,66,0,0,32.8,258
67
+ 32,5,99,74,27,0,29,203
68
+ 38,0,109,88,30,0,32.5,855
69
+ 54,2,109,92,0,0,42.7,845
70
+ 25,1,95,66,13,38,19.6,334
71
+ 27,4,146,85,27,100,28.9,189
72
+ 28,2,100,66,20,90,32.9,867
73
+ 26,5,139,64,35,140,28.6,411
74
+ 42,13,126,90,0,0,43.4,583
75
+ 23,4,129,86,20,270,35.1,231
76
+ 22,1,79,75,30,0,32,396
77
+ 22,1,0,48,20,0,24.7,0.14
78
+ 41,7,62,78,0,0,32.6,391
79
+ 27,5,95,72,33,0,37.7,0.37
80
+ 26,0,131,0,0,0,43.2,0.27
81
+ 24,2,112,66,22,0,25,307
82
+ 22,3,113,44,13,0,22.4,0.14
83
+ 22,2,74,0,0,0,0,102
84
+ 36,7,83,78,26,71,29.3,767
85
+ 22,0,101,65,28,0,24.6,237
86
+ 37,5,137,108,0,0,48.8,227
87
+ 27,2,110,74,29,125,32.4,698
88
+ 45,13,106,72,54,0,36.6,178
89
+ 26,2,100,68,25,71,38.5,324
90
+ 43,15,136,70,32,110,37.1,153
91
+ 24,1,107,68,19,0,26.5,165
92
+ 21,1,80,55,0,0,19.1,258
93
+ 34,4,123,80,15,176,32,443
94
+ 42,7,81,78,40,48,46.7,261
95
+ 60,4,134,72,0,0,23.8,277
96
+ 21,2,142,82,18,64,24.7,761
97
+ 40,6,144,72,27,228,33.9,255
98
+ 24,2,92,62,28,0,31.6,0.13
99
+ 22,1,71,48,18,76,20.4,323
100
+ 23,6,93,50,30,64,28.7,356
101
+ 31,1,122,90,51,220,49.7,325
102
+ 33,1,163,72,0,0,39,1.222
103
+ 22,1,151,60,0,0,26.1,179
104
+ 21,0,125,96,0,0,22.5,262
105
+ 24,1,81,72,18,40,26.6,283
106
+ 27,2,85,65,0,0,39.6,0.93
107
+ 21,1,126,56,29,152,28.7,801
108
+ 27,1,96,122,0,0,22.4,207
109
+ 37,4,144,58,28,140,29.5,287
110
+ 25,3,83,58,31,18,34.3,336
111
+ 24,0,95,85,25,36,37.4,247
112
+ 24,3,171,72,33,135,33.3,199
113
+ 46,8,155,62,26,495,34,543
114
+ 23,1,89,76,34,37,31.2,192
115
+ 25,4,76,62,0,0,34,391
116
+ 39,7,160,54,32,175,30.5,588
117
+ 61,4,146,92,0,0,31.2,539
118
+ 38,5,124,74,0,0,34,0.22
119
+ 25,5,78,48,0,0,33.7,654
120
+ 22,4,97,60,23,0,28.2,443
121
+ 21,4,99,76,15,51,23.2,223
122
+ 25,0,162,76,56,100,53.2,759
123
+ 24,6,111,64,39,0,34.2,0.26
124
+ 23,2,107,74,30,100,33.6,404
125
+ 69,5,132,80,0,0,26.8,186
126
+ 23,0,113,76,0,0,33.3,278
127
+ 26,1,88,30,42,99,55,496
128
+ 30,3,120,70,30,135,42.9,452
129
+ 23,1,118,58,36,94,33.3,261
130
+ 40,1,117,88,24,145,34.5,403
131
+ 62,0,105,84,0,0,27.9,741
132
+ 33,4,173,70,14,168,29.7,361
133
+ 33,9,122,56,0,0,33.3,1.114
134
+ 30,3,170,64,37,225,34.5,356
135
+ 39,8,84,74,31,0,38.3,457
136
+ 26,2,96,68,13,49,21.1,647
137
+ 31,2,125,60,20,140,33.8,88
138
+ 21,0,100,70,26,50,30.8,597
139
+ 22,0,93,60,25,92,28.7,532
140
+ 29,0,129,80,0,0,31.2,703
141
+ 28,5,105,72,29,325,36.9,159
142
+ 55,3,128,78,0,0,21.1,268
143
+ 38,5,106,82,30,0,39.5,286
144
+ 22,2,108,52,26,63,32.5,318
145
+ 42,10,108,66,0,0,32.4,272
146
+ 23,4,154,62,31,284,32.8,237
147
+ 21,0,102,75,23,0,0,572
148
+ 41,9,57,80,37,0,32.8,96
149
+ 34,2,106,64,35,119,30.5,1.4
150
+ 65,5,147,78,0,0,33.7,218
151
+ 22,2,90,70,17,0,27.3,85
152
+ 24,1,136,74,50,204,37.4,399
153
+ 37,4,114,65,0,0,21.9,432
154
+ 42,9,156,86,28,155,34.3,1.189
155
+ 23,1,153,82,42,485,40.6,687
156
+ 43,8,188,78,0,0,47.9,137
157
+ 36,7,152,88,44,0,50,337
158
+ 21,2,99,52,15,94,24.6,637
159
+ 23,1,109,56,21,135,25.2,833
160
+ 22,2,88,74,19,53,29,229
161
+ 47,17,163,72,41,114,40.9,817
162
+ 36,4,151,90,38,0,29.7,294
163
+ 45,7,102,74,40,105,37.2,204
164
+ 27,0,114,80,34,285,44.2,167
165
+ 21,2,100,64,23,0,29.7,368
166
+ 32,0,131,88,0,0,31.6,743
167
+ 41,6,104,74,18,156,29.9,722
168
+ 22,3,148,66,25,0,32.5,256
169
+ 34,4,120,68,0,0,29.6,709
170
+ 29,4,110,66,0,0,31.9,471
171
+ 29,3,111,90,12,78,28.4,495
172
+ 36,6,102,82,0,0,30.8,0.18
173
+ 29,6,134,70,23,130,35.4,542
174
+ 25,2,87,0,23,0,28.9,773
175
+ 23,1,79,60,42,48,43.5,678
176
+ 33,2,75,64,24,55,29.7,0.37
177
+ 36,8,179,72,42,130,32.7,719
178
+ 42,6,85,78,0,0,31.2,382
179
+ 26,0,129,110,46,130,67.1,319
180
+ 47,5,143,78,0,0,45,0.19
181
+ 37,5,130,82,0,0,39.1,956
182
+ 32,6,87,80,0,0,23.2,84
183
+ 23,0,119,64,18,92,34.9,725
184
+ 21,1,0,74,20,23,27.7,299
185
+ 27,5,73,60,0,0,26.8,268
186
+ 40,4,141,74,0,0,27.6,244
187
+ 41,7,194,68,28,0,35.9,745
188
+ 60,8,181,68,36,495,30.1,615
189
+ 33,1,128,98,41,58,32,1.321
190
+ 31,8,109,76,39,114,27.9,0.64
191
+ 25,5,139,80,35,160,31.6,361
192
+ 21,3,111,62,0,0,22.6,142
193
+ 40,9,123,70,44,94,33.1,374
194
+ 36,7,159,66,0,0,30.4,383
195
+ 40,11,135,0,0,0,52.3,578
196
+ 42,8,85,55,20,0,24.4,136
197
+ 29,5,158,84,41,210,39.4,395
198
+ 21,1,105,58,0,0,24.3,187
199
+ 23,3,107,62,13,48,22.9,678
200
+ 26,4,109,64,44,99,34.8,905
201
+ 29,4,148,60,27,318,30.9,0.15
202
+ 21,0,113,80,16,0,31,874
203
+ 28,1,138,82,0,0,40.1,236
204
+ 32,0,108,68,20,0,27.3,787
205
+ 27,2,99,70,16,44,20.4,235
206
+ 55,6,103,72,32,190,37.7,324
207
+ 27,5,111,72,28,0,23.9,407
208
+ 57,8,196,76,29,280,37.5,605
209
+ 52,5,162,104,0,0,37.7,151
210
+ 21,1,96,64,27,87,33.2,289
211
+ 41,7,184,84,33,0,35.5,355
212
+ 25,2,81,60,22,0,27.7,0.29
213
+ 24,0,147,85,54,0,42.8,375
214
+ 60,7,179,95,31,0,34.2,164
215
+ 24,0,140,65,26,130,42.6,431
216
+ 36,9,112,82,32,175,34.2,0.26
217
+ 38,12,151,70,40,271,41.8,742
218
+ 25,5,109,62,41,129,35.8,514
219
+ 32,6,125,68,30,120,30,464
220
+ 32,5,85,74,22,0,29,1.224
221
+ 41,5,112,66,0,0,37.8,261
222
+ 21,0,177,60,29,478,34.6,1.072
223
+ 66,2,158,90,0,0,31.6,805
224
+ 37,7,119,0,0,0,25.2,209
225
+ 61,7,142,60,33,190,28.8,687
226
+ 26,1,100,66,15,56,23.6,666
227
+ 22,1,87,78,27,32,34.6,101
228
+ 26,0,101,76,0,0,35.7,198
229
+ 24,3,162,52,38,0,37.2,652
230
+ 31,4,197,70,39,744,36.7,2.329
231
+ 24,0,117,80,31,53,45.2,89
232
+ 22,4,142,86,0,0,44,645
233
+ 46,6,134,80,37,370,46.2,238
234
+ 22,1,79,80,25,37,25.4,583
235
+ 29,4,122,68,0,0,35,394
236
+ 23,3,74,68,28,45,29.7,293
237
+ 26,4,171,72,0,0,43.6,479
238
+ 51,7,181,84,21,192,35.9,586
239
+ 23,0,179,90,27,0,44.1,686
240
+ 32,9,164,84,21,0,30.8,831
241
+ 27,0,104,76,0,0,18.4,582
242
+ 21,1,91,64,24,0,29.2,192
243
+ 22,4,91,70,32,88,33.1,446
244
+ 22,3,139,54,0,0,25.6,402
245
+ 33,6,119,50,22,176,27.1,1.318
246
+ 29,2,146,76,35,194,38.2,329
247
+ 49,9,184,85,15,0,30,1.213
248
+ 41,10,122,68,0,0,31.2,258
249
+ 23,0,165,90,33,680,52.3,427
250
+ 34,9,124,70,33,402,35.4,282
251
+ 23,1,111,86,19,0,30.1,143
252
+ 42,9,106,52,0,0,31.2,0.38
253
+ 27,2,129,84,0,0,28,284
254
+ 24,2,90,80,14,55,24.4,249
255
+ 25,0,86,68,32,0,35.8,238
256
+ 44,12,92,62,7,258,27.6,926
257
+ 21,1,113,64,35,0,33.6,543
258
+ 30,3,111,56,39,0,30.1,557
259
+ 25,2,114,68,22,0,28.7,92
260
+ 24,1,193,50,16,375,25.9,655
261
+ 51,11,155,76,28,150,33.3,1.353
262
+ 34,3,191,68,15,130,30.9,299
263
+ 27,3,141,0,0,0,30,761
264
+ 24,4,95,70,32,0,32.1,612
265
+ 63,3,142,80,15,0,32.4,0.2
266
+ 35,4,123,62,0,0,32,226
267
+ 43,5,96,74,18,67,33.6,997
268
+ 25,0,138,0,0,0,36.3,933
269
+ 24,2,128,64,42,0,40,1.101
270
+ 21,0,102,52,0,0,25.1,78
271
+ 28,2,146,0,0,0,27.5,0.24
272
+ 38,10,101,86,37,0,45.6,1.136
273
+ 21,2,108,62,32,56,25.2,128
274
+ 40,3,122,78,0,0,23,254
275
+ 21,1,71,78,50,45,33.2,422
276
+ 52,13,106,70,0,0,34.2,251
277
+ 25,2,100,70,52,57,40.5,677
278
+ 29,7,106,60,24,0,26.5,296
279
+ 23,0,104,64,23,116,27.8,454
280
+ 57,5,114,74,0,0,24.9,744
281
+ 22,2,108,62,10,278,25.3,881
282
+ 28,0,146,70,0,0,37.9,334
283
+ 39,10,129,76,28,122,35.9,0.28
284
+ 37,7,133,88,15,155,32.4,262
285
+ 47,7,161,86,0,0,30.4,165
286
+ 52,2,108,80,0,0,27,259
287
+ 51,7,136,74,26,135,26,647
288
+ 34,5,155,84,44,545,38.7,619
289
+ 29,1,119,86,39,220,45.6,808
290
+ 26,4,96,56,17,49,20.8,0.34
291
+ 33,5,108,72,43,75,36.1,263
292
+ 21,0,78,88,29,40,36.9,434
293
+ 25,0,107,62,30,74,36.6,757
294
+ 31,2,128,78,37,182,43.3,1.224
295
+ 24,1,128,48,45,194,40.5,613
296
+ 65,0,161,50,0,0,21.9,254
297
+ 28,6,151,62,31,120,35.5,692
298
+ 29,2,146,70,38,360,28,337
299
+ 24,0,126,84,29,215,30.7,0.52
300
+ 46,14,100,78,25,184,36.6,412
301
+ 58,8,112,72,0,0,23.6,0.84
302
+ 30,0,167,0,0,0,32.3,839
303
+ 25,2,144,58,33,135,31.6,422
304
+ 35,5,77,82,41,42,35.8,156
305
+ 28,5,115,98,0,0,52.9,209
306
+ 37,3,150,76,0,0,21,207
307
+ 29,2,120,76,37,105,39.7,215
308
+ 47,10,161,68,23,132,25.5,326
309
+ 21,0,137,68,14,148,24.8,143
310
+ 25,0,128,68,19,180,30.5,1.391
311
+ 30,2,124,68,28,205,32.9,875
312
+ 41,6,80,66,30,0,26.2,313
313
+ 22,0,106,70,37,148,39.4,605
314
+ 27,2,155,74,17,96,26.6,433
315
+ 25,3,113,50,10,85,29.5,626
316
+ 43,7,109,80,31,0,35.9,1.127
317
+ 26,2,112,68,22,94,34.1,315
318
+ 30,3,99,80,11,64,19.3,284
319
+ 29,3,182,74,0,0,30.5,345
320
+ 28,3,115,66,39,140,38.1,0.15
321
+ 59,6,194,78,0,0,23.5,129
322
+ 31,4,129,60,12,231,27.5,527
323
+ 25,3,112,74,30,0,31.6,197
324
+ 36,0,124,70,20,0,27.4,254
325
+ 43,13,152,90,33,29,26.8,731
326
+ 21,2,112,75,32,0,35.7,148
327
+ 24,1,157,72,21,168,25.6,123
328
+ 30,1,122,64,32,156,35.1,692
329
+ 37,10,179,70,0,0,35.1,0.2
330
+ 23,2,102,86,36,120,45.5,127
331
+ 37,6,105,70,32,68,30.8,122
332
+ 46,8,118,72,19,0,23.1,1.476
333
+ 25,2,87,58,16,52,32.7,166
334
+ 41,1,180,0,0,0,43.3,282
335
+ 44,12,106,80,0,0,23.6,137
336
+ 22,1,95,60,18,58,23.9,0.26
337
+ 26,0,165,76,43,255,47.9,259
338
+ 44,0,117,0,0,0,33.8,932
339
+ 44,5,115,76,0,0,31.2,343
340
+ 33,9,152,78,34,171,34.2,893
341
+ 41,7,178,84,0,0,39.9,331
342
+ 22,1,130,70,13,105,25.9,472
343
+ 36,1,95,74,21,73,25.9,673
344
+ 22,1,0,68,35,0,32,389
345
+ 33,5,122,86,0,0,34.7,0.29
346
+ 57,8,95,72,0,0,36.8,485
347
+ 49,8,126,88,36,108,38.5,349
348
+ 22,1,139,46,19,83,28.7,654
349
+ 23,3,116,0,0,0,23.5,187
350
+ 26,3,99,62,19,74,21.8,279
351
+ 37,5,0,80,32,0,41,346
352
+ 29,4,92,80,0,0,42.2,237
353
+ 30,4,137,84,0,0,31.2,252
354
+ 46,3,61,82,28,0,34.4,243
355
+ 24,1,90,62,12,43,27.2,0.58
356
+ 21,3,90,78,0,0,42.7,559
357
+ 49,9,165,88,0,0,30.4,302
358
+ 28,1,125,50,40,167,33.3,962
359
+ 44,13,129,0,30,0,39.9,569
360
+ 48,12,88,74,40,54,35.3,378
361
+ 29,1,196,76,36,249,36.5,875
362
+ 29,5,189,64,33,325,31.2,583
363
+ 63,5,158,70,0,0,29.8,207
364
+ 65,5,103,108,37,0,39.2,305
365
+ 67,4,146,78,0,0,38.5,0.52
366
+ 30,4,147,74,25,293,34.9,385
367
+ 30,5,99,54,28,83,34,499
368
+ 29,6,124,72,0,0,27.6,368
369
+ 21,0,101,64,17,0,21,252
370
+ 22,3,81,86,16,66,27.5,306
371
+ 45,1,133,102,28,140,32.8,234
372
+ 25,3,173,82,48,465,38.4,2.137
373
+ 21,0,118,64,23,89,0,1.731
374
+ 21,0,84,64,22,66,35.8,545
375
+ 25,2,105,58,40,94,34.9,225
376
+ 28,2,122,52,43,158,36.2,816
377
+ 58,12,140,82,43,325,39.2,528
378
+ 22,0,98,82,15,84,25.2,299
379
+ 22,1,87,60,37,75,37.2,509
380
+ 32,4,156,75,0,0,48.3,238
381
+ 35,0,93,100,39,72,43.4,1.021
382
+ 24,1,107,72,30,82,30.8,821
383
+ 22,0,105,68,22,0,20,236
384
+ 21,1,109,60,8,182,25.4,947
385
+ 25,1,90,62,18,59,25.1,1.268
386
+ 25,1,125,70,24,110,24.3,221
387
+ 24,1,119,54,13,50,22.3,205
388
+ 35,5,116,74,29,0,32.3,0.66
389
+ 45,8,105,100,36,0,43.3,239
390
+ 58,5,144,82,26,285,32,452
391
+ 28,3,100,68,23,81,31.6,949
392
+ 42,1,100,66,29,196,32,444
393
+ 27,5,166,76,0,0,45.7,0.34
394
+ 21,1,131,64,14,415,23.7,389
395
+ 37,4,116,72,12,87,22.1,463
396
+ 31,4,158,78,0,0,32.9,803
397
+ 25,2,127,58,24,275,27.7,1.6
398
+ 39,3,96,56,34,115,24.7,944
399
+ 22,0,131,66,40,0,34.3,196
400
+ 25,3,82,70,0,0,21.1,389
401
+ 25,3,193,70,31,0,34.9,241
402
+ 31,4,95,64,0,0,32,161
403
+ 55,6,137,61,0,0,24.2,151
404
+ 35,5,136,84,41,88,35,286
405
+ 38,9,72,78,25,0,31.6,0.28
406
+ 41,5,168,64,0,0,32.9,135
407
+ 26,2,123,48,32,165,42.1,0.52
408
+ 46,4,115,72,0,0,28.9,376
409
+ 25,0,101,62,0,0,21.9,336
410
+ 39,8,197,74,0,0,25.9,1.191
411
+ 28,1,172,68,49,579,42.4,702
412
+ 28,6,102,90,39,0,35.7,674
413
+ 25,1,112,72,30,176,34.4,528
414
+ 22,1,143,84,23,310,42.4,1.076
415
+ 21,1,143,74,22,61,26.2,256
416
+ 21,0,138,60,35,167,34.6,534
417
+ 22,3,173,84,33,474,35.7,258
418
+ 22,1,97,68,21,0,27.2,1.095
419
+ 37,4,144,82,32,0,38.5,554
420
+ 27,1,83,68,0,0,18.2,624
421
+ 28,3,129,64,29,115,26.4,219
422
+ 26,1,119,88,41,170,45.3,507
423
+ 21,2,94,68,18,76,26,561
424
+ 21,0,102,64,46,78,40.6,496
425
+ 21,2,115,64,22,0,30.8,421
426
+ 36,8,151,78,32,210,42.9,516
427
+ 31,4,184,78,39,277,37,264
428
+ 25,0,94,0,0,0,0,256
429
+ 38,1,181,64,30,180,34.1,328
430
+ 26,0,135,94,46,145,40.6,284
431
+ 43,1,95,82,25,180,35,233
432
+ 23,2,99,0,0,0,22.2,108
433
+ 38,3,89,74,16,85,30.4,551
434
+ 22,1,80,74,11,60,30,527
435
+ 29,2,139,75,0,0,25.6,167
436
+ 36,1,90,68,8,0,24.5,1.138
437
+ 29,0,141,0,0,0,42.4,205
438
+ 41,12,140,85,33,0,37.4,244
439
+ 28,5,147,75,0,0,29.9,434
440
+ 21,1,97,70,15,0,18.2,147
441
+ 31,6,107,88,0,0,36.8,727
442
+ 41,0,189,104,25,0,34.3,435
443
+ 22,2,83,66,23,50,32.2,497
444
+ 24,4,117,64,27,120,33.2,0.23
445
+ 33,8,108,70,0,0,30.5,955
446
+ 30,4,117,62,12,0,29.7,0.38
447
+ 25,0,180,78,63,14,59.4,2.42
448
+ 28,1,100,72,12,70,25.3,658
449
+ 26,0,95,80,45,92,36.5,0.33
450
+ 22,0,104,64,37,64,33.6,0.51
451
+ 26,0,120,74,18,63,30.5,285
452
+ 23,1,82,64,13,95,21.2,415
453
+ 23,2,134,70,0,0,28.9,542
454
+ 25,0,91,68,32,210,39.9,381
455
+ 72,2,119,0,0,0,19.6,832
456
+ 24,2,100,54,28,105,37.8,498
457
+ 38,14,175,62,30,0,33.6,212
458
+ 62,1,135,54,0,0,26.7,687
459
+ 24,5,86,68,28,71,30.2,364
460
+ 51,10,148,84,48,237,37.6,1.001
461
+ 81,9,134,74,33,60,25.9,0.46
462
+ 48,9,120,72,22,56,20.8,733
463
+ 26,1,71,62,0,0,21.8,416
464
+ 39,8,74,70,40,49,35.3,705
465
+ 37,5,88,78,30,0,27.6,258
466
+ 34,10,115,98,0,0,24,1.022
467
+ 21,0,124,56,13,105,21.8,452
468
+ 22,0,74,52,10,36,27.8,269
469
+ 25,0,97,64,36,100,36.8,0.6
470
+ 38,8,120,0,0,0,30,183
471
+ 27,6,154,78,41,140,46.1,571
472
+ 28,1,144,82,40,0,41.3,607
473
+ 22,0,137,70,38,0,33.2,0.17
474
+ 22,0,119,66,27,0,38.8,259
475
+ 50,7,136,90,0,0,29.9,0.21
476
+ 24,4,114,64,0,0,28.9,126
477
+ 59,0,137,84,27,0,27.3,231
478
+ 29,2,105,80,45,191,33.7,711
479
+ 31,7,114,76,17,110,23.8,466
480
+ 39,8,126,74,38,75,25.9,162
481
+ 63,4,132,86,31,0,28,419
482
+ 35,3,158,70,30,328,35.5,344
483
+ 29,0,123,88,37,0,35.2,197
484
+ 28,4,85,58,22,49,27.8,306
485
+ 23,0,84,82,31,125,38.2,233
486
+ 31,0,145,0,0,0,44.2,0.63
487
+ 24,0,135,68,42,250,42.3,365
488
+ 21,1,139,62,41,480,40.7,536
489
+ 58,0,173,78,32,265,46.5,1.159
490
+ 28,4,99,72,17,0,25.6,294
491
+ 67,8,194,80,0,0,26.1,551
492
+ 24,2,83,65,28,66,36.8,629
493
+ 42,2,89,90,30,0,33.5,292
494
+ 33,4,99,68,38,0,32.8,145
495
+ 45,4,125,70,18,122,28.9,1.144
496
+ 22,3,80,0,0,0,0,174
497
+ 66,6,166,74,0,0,26.6,304
498
+ 30,5,110,68,0,0,26,292
499
+ 25,2,81,72,15,76,30.1,547
500
+ 55,7,195,70,33,145,25.1,163
501
+ 39,6,154,74,32,193,29.3,839
502
+ 21,2,117,90,19,71,25.2,313
503
+ 28,3,84,72,32,0,37.2,267
504
+ 41,6,0,68,41,0,39,727
505
+ 41,7,94,64,25,79,33.3,738
506
+ 40,3,96,78,39,0,37.3,238
507
+ 38,10,75,82,0,0,33.3,263
508
+ 35,0,180,90,26,90,36.5,314
509
+ 21,1,130,60,23,170,28.6,692
510
+ 21,2,84,50,23,76,30.4,968
511
+ 64,8,120,78,0,0,25,409
512
+ 46,12,84,72,31,0,29.7,297
513
+ 21,0,139,62,17,210,22.1,207
514
+ 58,9,91,68,0,0,24.2,0.2
515
+ 22,2,91,62,0,0,27.3,525
516
+ 24,3,99,54,19,86,25.6,154
517
+ 28,3,163,70,18,105,31.6,268
518
+ 53,9,145,88,34,165,30.3,771
519
+ 51,7,125,86,0,0,37.6,304
520
+ 41,13,76,60,0,0,32.8,0.18
521
+ 60,6,129,90,7,326,19.6,582
522
+ 25,2,68,70,32,66,25,187
523
+ 26,3,124,80,33,130,33.2,305
524
+ 26,6,114,0,0,0,0,189
525
+ 45,9,130,70,0,0,34.2,652
526
+ 24,3,125,58,0,0,31.6,151
527
+ 21,3,87,60,18,0,21.8,444
528
+ 21,1,97,64,19,82,18.2,299
529
+ 24,3,116,74,15,105,26.3,107
530
+ 22,0,117,66,31,188,30.8,493
531
+ 31,0,111,65,0,0,24.6,0.66
532
+ 22,2,122,60,18,106,29.8,717
533
+ 24,0,107,76,0,0,45.3,686
534
+ 29,1,86,66,52,65,41.3,917
535
+ 31,6,91,0,0,0,29.8,501
536
+ 24,1,77,56,30,56,33.3,1.251
537
+ 23,4,132,0,0,0,32.9,302
538
+ 46,0,105,90,0,0,29.6,197
539
+ 67,0,57,60,0,0,21.7,735
540
+ 23,0,127,80,37,210,36.3,804
541
+ 32,3,129,92,49,155,36.4,968
542
+ 43,8,100,74,40,215,39.4,661
543
+ 27,3,128,72,25,190,32.4,549
544
+ 56,10,90,85,32,0,34.9,825
545
+ 25,4,84,90,23,56,39.5,159
546
+ 29,1,88,78,29,76,32,365
547
+ 37,8,186,90,35,225,34.5,423
548
+ 53,5,187,76,27,207,43.6,1.034
549
+ 28,4,131,68,21,166,33.1,0.16
550
+ 50,1,164,82,43,67,32.8,341
551
+ 37,4,189,110,31,0,28.5,0.68
552
+ 21,1,116,70,28,0,27.4,204
553
+ 25,3,84,68,30,106,31.9,591
554
+ 66,6,114,88,0,0,27.8,247
555
+ 23,1,88,62,24,44,29.9,422
556
+ 28,1,84,64,23,115,36.9,471
557
+ 37,7,124,70,33,215,25.5,161
558
+ 30,1,97,70,40,0,38.1,218
559
+ 58,8,110,76,0,0,27.8,237
560
+ 42,11,103,68,40,0,46.2,126
561
+ 35,11,85,74,0,0,30.1,0.3
562
+ 54,6,125,76,0,0,33.8,121
563
+ 28,0,198,66,32,274,41.3,502
564
+ 24,1,87,68,34,77,37.6,401
565
+ 32,6,99,60,19,54,26.9,497
566
+ 27,0,91,80,0,0,32.4,601
567
+ 22,2,95,54,14,88,26.1,748
568
+ 21,1,99,72,30,18,38.6,412
569
+ 46,6,92,62,32,126,32,85
570
+ 37,4,154,72,29,126,31.3,338
571
+ 33,0,121,66,30,165,34.3,203
572
+ 39,3,78,70,0,0,32.5,0.27
573
+ 21,2,130,96,0,0,22.6,268
574
+ 22,3,111,58,31,44,29.5,0.43
575
+ 22,2,98,60,17,120,34.7,198
576
+ 23,1,143,86,30,330,30.1,892
577
+ 25,1,119,44,47,63,35.5,0.28
578
+ 35,6,108,44,20,130,24,813
579
+ 21,2,118,80,0,0,42.9,693
580
+ 36,10,133,68,0,0,27,245
581
+ 62,2,197,70,99,0,34.7,575
582
+ 21,0,151,90,46,0,42.1,371
583
+ 27,6,109,60,27,0,25,206
584
+ 62,12,121,78,17,0,26.5,259
585
+ 42,8,100,76,0,0,38.7,0.19
586
+ 52,8,124,76,24,600,28.7,687
587
+ 22,1,93,56,11,0,22.5,417
588
+ 41,8,143,66,0,0,34.9,129
589
+ 29,6,103,66,0,0,24.3,249
590
+ 52,3,176,86,27,156,33.3,1.154
591
+ 25,0,73,0,0,0,21.1,342
592
+ 45,11,111,84,40,0,46.8,925
593
+ 24,2,112,78,50,140,39.4,175
594
+ 44,3,132,80,0,0,34.4,402
595
+ 25,2,82,52,22,115,28.5,1.699
596
+ 34,6,123,72,45,230,33.6,733
597
+ 22,0,188,82,14,185,32,682
598
+ 46,0,67,76,0,0,45.3,194
599
+ 21,1,89,24,19,25,27.8,559
600
+ 38,1,173,74,0,0,36.8,88
601
+ 26,1,109,38,18,120,23.1,407
602
+ 24,1,108,88,19,0,27.1,0.4
603
+ 28,6,96,0,0,0,23.7,0.19
604
+ 30,1,124,74,36,0,27.8,0.1
605
+ 54,7,150,78,29,126,35.2,692
606
+ 36,4,183,0,0,0,28.4,212
607
+ 21,1,124,60,32,0,35.8,514
608
+ 22,1,181,78,42,293,40,1.258
609
+ 25,1,92,62,25,41,19.5,482
610
+ 27,0,152,82,39,272,41.5,0.27
611
+ 23,1,111,62,13,182,24,138
612
+ 24,3,106,54,21,158,30.9,292
613
+ 36,3,174,58,22,194,32.9,593
614
+ 40,7,168,88,42,321,38.2,787
615
+ 26,6,105,80,28,0,32.5,878
616
+ 50,11,138,74,26,144,36.1,557
617
+ 27,3,106,72,0,0,25.8,207
618
+ 30,6,117,96,0,0,28.7,157
619
+ 23,2,68,62,13,15,20.1,257
620
+ 50,9,112,82,24,0,28.2,1.282
621
+ 24,0,119,0,0,0,32.4,141
622
+ 28,2,112,86,42,160,38.4,246
623
+ 28,2,92,76,20,0,24.2,1.698
624
+ 45,6,183,94,0,0,40.8,1.461
625
+ 21,0,94,70,27,115,43.5,347
626
+ 21,2,108,64,0,0,30.8,158
627
+ 29,4,90,88,47,54,37.7,362
628
+ 21,0,125,68,0,0,24.7,206
629
+ 21,0,132,78,0,0,32.4,393
630
+ 45,5,128,80,0,0,34.6,144
631
+ 21,4,94,65,22,0,24.7,148
632
+ 34,7,114,64,0,0,27.4,732
633
+ 24,0,102,78,40,90,34.5,238
634
+ 23,2,111,60,0,0,26.2,343
635
+ 22,1,128,82,17,183,27.5,115
636
+ 31,10,92,62,0,0,25.9,167
637
+ 38,13,104,72,0,0,31.2,465
638
+ 48,5,104,74,0,0,28.8,153
639
+ 23,2,94,76,18,66,31.6,649
640
+ 32,7,97,76,32,91,40.9,871
641
+ 28,1,100,74,12,46,19.5,149
642
+ 27,0,102,86,17,105,29.3,695
643
+ 24,4,128,70,0,0,34.3,303
644
+ 50,6,147,80,0,0,29.5,178
645
+ 31,4,90,0,0,0,28,0.61
646
+ 27,3,103,72,30,152,27.6,0.73
647
+ 30,2,157,74,35,440,39.4,134
648
+ 33,1,167,74,17,144,23.4,447
649
+ 22,0,179,50,36,159,37.8,455
650
+ 42,11,136,84,35,130,28.3,0.26
651
+ 23,0,107,60,25,0,26.4,133
652
+ 23,1,91,54,25,100,25.2,234
653
+ 27,1,117,60,23,106,33.8,466
654
+ 28,5,123,74,40,77,34.1,269
655
+ 27,2,120,54,0,0,26.8,455
656
+ 22,1,106,70,28,135,34.2,142
657
+ 25,2,155,52,27,540,38.7,0.24
658
+ 22,2,101,58,35,90,21.8,155
659
+ 41,1,120,80,48,200,38.9,1.162
660
+ 51,11,127,106,0,0,39,0.19
661
+ 27,3,80,82,31,70,34.2,1.292
662
+ 54,10,162,84,0,0,27.7,182
663
+ 22,1,199,76,43,0,42.9,1.394
664
+ 43,8,167,106,46,231,37.6,165
665
+ 40,9,145,80,46,130,37.9,637
666
+ 40,6,115,60,39,0,33.7,245
667
+ 24,1,112,80,45,132,34.8,217
668
+ 70,4,145,82,18,0,32.5,235
669
+ 40,10,111,70,27,0,27.5,141
670
+ 43,6,98,58,33,190,34,0.43
671
+ 45,9,154,78,30,100,30.9,164
672
+ 49,6,165,68,26,168,33.6,631
673
+ 21,1,99,58,10,0,25.4,551
674
+ 47,10,68,106,23,49,35.5,285
675
+ 22,3,123,100,35,240,57.3,0.88
676
+ 68,8,91,82,0,0,35.6,587
677
+ 31,6,195,70,0,0,30.9,328
678
+ 53,9,156,86,0,0,24.8,0.23
679
+ 25,0,93,60,0,0,35.3,263
680
+ 25,3,121,52,0,0,36,127
681
+ 23,2,101,58,17,265,24.2,614
682
+ 22,2,56,56,28,45,24.2,332
683
+ 26,0,162,76,36,0,49.6,364
684
+ 22,0,95,64,39,105,44.6,366
685
+ 27,4,125,80,0,0,32.3,536
686
+ 69,5,136,82,0,0,0,0.64
687
+ 25,2,129,74,26,205,33.2,591
688
+ 22,3,130,64,0,0,23.1,314
689
+ 29,1,107,50,19,0,28.3,181
690
+ 23,1,140,74,26,180,24.1,828
691
+ 46,1,144,82,46,180,46.1,335
692
+ 34,8,107,80,0,0,24.6,856
693
+ 44,13,158,114,0,0,42.3,257
694
+ 23,2,121,70,32,95,39.1,886
695
+ 43,7,129,68,49,125,38.5,439
696
+ 25,2,90,60,0,0,23.5,191
697
+ 43,7,142,90,24,480,30.4,128
698
+ 31,3,169,74,19,125,29.9,268
699
+ 22,0,99,0,0,0,25,253
700
+ 28,4,127,88,11,155,34.5,598
701
+ 26,4,118,70,0,0,44.5,904
702
+ 26,2,122,76,27,200,35.9,483
703
+ 49,6,125,78,31,0,27.6,565
704
+ 52,1,168,88,29,0,35,905
705
+ 41,2,129,0,0,0,38.5,304
706
+ 27,4,110,76,20,100,28.4,118
707
+ 28,6,80,80,36,0,39.8,177
708
+ 30,10,115,0,0,0,0,261
709
+ 22,2,127,46,21,335,34.4,176
710
+ 45,9,164,78,0,0,32.8,148
711
+ 23,2,93,64,32,160,38,674
712
+ 24,3,158,64,13,387,31.2,295
713
+ 40,5,126,78,27,22,29.6,439
714
+ 38,10,129,62,36,0,41.2,441
715
+ 21,0,134,58,20,291,26.4,352
716
+ 32,3,102,74,0,0,29.5,121
717
+ 34,7,187,50,33,392,33.9,826
718
+ 31,3,173,78,39,185,33.8,0.97
719
+ 56,10,94,72,18,0,23.1,595
720
+ 24,1,108,60,46,178,35.5,415
721
+ 52,5,97,76,27,0,35.6,378
722
+ 34,4,83,86,19,0,29.3,317
723
+ 21,1,114,66,36,200,38.1,289
724
+ 42,1,149,68,29,127,29.3,349
725
+ 42,5,117,86,30,105,39.1,251
726
+ 45,1,111,94,0,0,32.8,265
727
+ 38,4,112,78,40,0,39.4,236
728
+ 25,1,116,78,29,180,36.1,496
729
+ 22,0,141,84,26,0,32.4,433
730
+ 22,2,175,88,0,0,22.9,326
731
+ 22,2,92,52,0,0,30.1,141
732
+ 34,3,130,78,23,79,28.4,323
733
+ 22,8,120,86,0,0,28.4,259
734
+ 24,2,174,88,37,120,44.5,646
735
+ 22,2,106,56,27,165,29,426
736
+ 53,2,105,75,0,0,23.3,0.56
737
+ 28,4,95,60,32,0,35.4,284
738
+ 21,0,126,86,27,120,27.4,515
739
+ 42,8,65,72,23,0,32,0.6
740
+ 21,2,99,60,17,160,36.6,453
741
+ 42,1,102,74,0,0,39.5,293
742
+ 48,11,120,80,37,150,42.3,785
743
+ 26,3,102,44,20,94,30.8,0.4
744
+ 22,1,109,58,18,116,28.5,219
745
+ 45,9,140,94,0,0,32.7,734
746
+ 39,13,153,88,37,140,40.6,1.174
747
+ 46,12,100,84,33,105,30,488
748
+ 27,1,147,94,41,0,49.3,358
749
+ 32,1,81,74,41,57,46.3,1.096
750
+ 36,3,187,70,22,200,36.4,408
751
+ 50,6,162,62,0,0,24.3,178
752
+ 22,4,136,70,0,0,31.2,1.182
753
+ 28,1,121,78,39,74,39,261
754
+ 25,3,108,62,24,0,26,223
755
+ 26,0,181,88,44,510,43.3,222
756
+ 45,8,154,78,32,0,32.4,443
757
+ 37,1,128,88,39,110,36.5,1.057
758
+ 39,7,137,90,41,0,32,391
759
+ 52,0,123,72,0,0,36.3,258
760
+ 26,1,106,76,0,0,37.5,197
761
+ 66,6,190,92,0,0,35.5,278
762
+ 22,2,88,58,26,16,28.4,766
763
+ 43,9,170,74,31,0,44,403
764
+ 33,9,89,62,0,0,22.5,142
765
+ 63,10,101,76,48,180,32.9,171
766
+ 27,2,122,70,27,0,36.8,0.34
767
+ 30,5,121,72,23,112,26.2,245
768
+ 47,1,126,60,0,0,30.1,349
769
+ 23,1,93,70,31,0,30.4,315
index.html DELETED
@@ -1,2984 +0,0 @@
1
- <!DOCTYPE html>
2
- <!--
3
- Multi Agent Data Analysis with Crew AI
4
- Copyright (c) 2025 Sowmiyan S
5
- Licensed under the MIT License
6
- -->
7
- <html lang="en">
8
- <head>
9
- <meta charset="UTF-8">
10
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
11
- <title>Multi Agent Data Analysis with Crew AI</title>
12
- <link rel="preconnect" href="https://fonts.googleapis.com">
13
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
14
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
15
- <style>
16
- :root {
17
- --bg-body: #f3f4f6;
18
- --bg-card: #ffffff;
19
- --text-primary: #111827;
20
- --text-secondary: #4b5563;
21
- --accent-primary: #2563eb;
22
- --accent-secondary: #1e40af;
23
- --border-subtle: #e5e7eb;
24
- --code-bg: #1e1e1e;
25
- --code-text: #d4d4d4;
26
- --success-color: #10b981;
27
- --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
28
- --font-mono: 'JetBrains Mono', monospace;
29
- --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
30
- --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
31
- --radius-md: 0.5rem;
32
- --radius-lg: 0.75rem;
33
- }
34
-
35
- * { margin: 0; padding: 0; box-sizing: border-box; }
36
-
37
- body {
38
- background-color: var(--bg-body);
39
- color: var(--text-primary);
40
- font-family: var(--font-sans);
41
- line-height: 1.6;
42
- -webkit-font-smoothing: antialiased;
43
- padding: 2rem;
44
- }
45
-
46
- .container {
47
- max-width: 1000px;
48
- margin: 0 auto;
49
- }
50
-
51
- /* Header */
52
- .header {
53
- text-align: center;
54
- margin-bottom: 3rem;
55
- padding: 2rem 0;
56
- }
57
-
58
- .brand-badge {
59
- display: inline-block;
60
- background: var(--accent-primary);
61
- color: white;
62
- padding: 0.25rem 0.75rem;
63
- border-radius: 9999px;
64
- font-size: 0.75rem;
65
- font-weight: 600;
66
- letter-spacing: 0.05em;
67
- text-transform: uppercase;
68
- margin-bottom: 1rem;
69
- box-shadow: var(--shadow-sm);
70
- }
71
-
72
- h1 {
73
- font-size: 2.5rem;
74
- font-weight: 800;
75
- color: var(--text-primary);
76
- letter-spacing: -0.025em;
77
- margin-bottom: 0.5rem;
78
- background: linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);
79
- -webkit-background-clip: text;
80
- -webkit-text-fill-color: transparent;
81
- }
82
-
83
- .subtitle {
84
- color: var(--text-secondary);
85
- font-size: 1.1rem;
86
- }
87
-
88
- /* Status Banner */
89
- .status-banner {
90
- background: white;
91
- border-left: 4px solid var(--success-color);
92
- padding: 1rem 1.5rem;
93
- border-radius: var(--radius-md);
94
- box-shadow: var(--shadow-sm);
95
- display: flex;
96
- align-items: center;
97
- gap: 0.75rem;
98
- margin-bottom: 3rem;
99
- font-weight: 500;
100
- color: var(--text-primary);
101
- }
102
-
103
- .status-dot {
104
- width: 10px;
105
- height: 10px;
106
- background-color: var(--success-color);
107
- border-radius: 50%;
108
- box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
109
- }
110
-
111
- /* Cards */
112
- .section {
113
- background: var(--bg-card);
114
- border-radius: var(--radius-lg);
115
- box-shadow: var(--shadow-md);
116
- margin-bottom: 2rem;
117
- overflow: hidden;
118
- border: 1px solid var(--border-subtle);
119
- transition: transform 0.2s ease;
120
- }
121
-
122
- .section:hover {
123
- transform: translateY(-2px);
124
- }
125
-
126
- .section-header {
127
- padding: 1.5rem 2rem;
128
- border-bottom: 1px solid var(--border-subtle);
129
- display: flex;
130
- justify-content: space-between;
131
- align-items: center;
132
- background: #fafafa;
133
- }
134
-
135
- h2 {
136
- font-size: 1.25rem;
137
- font-weight: 600;
138
- color: var(--text-primary);
139
- display: flex;
140
- align-items: center;
141
- gap: 0.5rem;
142
- }
143
-
144
- .step-number {
145
- font-family: var(--font-mono);
146
- font-size: 0.875rem;
147
- color: var(--text-secondary);
148
- background: var(--border-subtle);
149
- padding: 0.25rem 0.5rem;
150
- border-radius: var(--radius-md);
151
- }
152
-
153
- /* Content Areas */
154
- .content-wrapper {
155
- padding: 0;
156
- }
157
-
158
- .code-block {
159
- background: var(--code-bg);
160
- padding: 1.5rem;
161
- overflow-x: auto;
162
- font-family: var(--font-mono);
163
- font-size: 0.9rem;
164
- line-height: 1.5;
165
- color: var(--code-text);
166
- border-bottom-left-radius: var(--radius-lg);
167
- border-bottom-right-radius: var(--radius-lg);
168
- }
169
-
170
- /* Table Styles */
171
- .table-container {
172
- overflow-x: auto;
173
- max-height: 500px;
174
- }
175
-
176
- table.data-table {
177
- width: 100%;
178
- border-collapse: collapse;
179
- font-size: 0.875rem;
180
- font-family: var(--font-mono);
181
- white-space: nowrap;
182
- }
183
-
184
- table.data-table th {
185
- background: #f8fafc;
186
- color: var(--text-secondary);
187
- font-weight: 600;
188
- text-transform: uppercase;
189
- font-size: 0.75rem;
190
- letter-spacing: 0.05em;
191
- padding: 1rem 1.5rem;
192
- text-align: left;
193
- border-bottom: 1px solid var(--border-subtle);
194
- position: sticky;
195
- top: 0;
196
- z-index: 10;
197
- }
198
-
199
- table.data-table td {
200
- padding: 1rem 1.5rem;
201
- border-bottom: 1px solid var(--border-subtle);
202
- color: var(--text-primary);
203
- }
204
-
205
- table.data-table tr:last-child td { border-bottom: none; }
206
- table.data-table tr:hover td { background-color: #f9fafb; }
207
-
208
- /* Syntax Highlighting (Dark Theme) */
209
- .keyword { color: #c586c0; font-weight: bold; } /* Purple */
210
- .string { color: #ce9178; } /* Orange */
211
- .number { color: #b5cea8; } /* Light Green */
212
- .boolean { color: #569cd6; } /* Blue */
213
- .key { color: #9cdcfe; } /* Light Blue */
214
- .comment { color: #6a9955; font-style: italic; } /* Green */
215
- .null { color: #569cd6; }
216
-
217
- /* Footer */
218
- .footer {
219
- text-align: center;
220
- margin-top: 4rem;
221
- padding-top: 2rem;
222
- border-top: 1px solid var(--border-subtle);
223
- color: var(--text-secondary);
224
- font-size: 0.875rem;
225
- }
226
-
227
- .footer p { margin-bottom: 0.5rem; }
228
-
229
- @media (max-width: 768px) {
230
- body { padding: 1rem; }
231
- h1 { font-size: 2rem; }
232
- .section-header { padding: 1rem; }
233
- .code-block { padding: 1rem; }
234
- }
235
- </style>
236
-
237
- <script>
238
- function highlightAll() {
239
- const codes = document.querySelectorAll('code');
240
- codes.forEach(block => {
241
- let html = block.innerHTML;
242
- if (block.classList.contains('language-json')) {
243
- html = html.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
244
- let cls = 'number';
245
- if (/^"/.test(match)) {
246
- if (/:$/.test(match)) {
247
- cls = 'key';
248
- } else {
249
- cls = 'string';
250
- }
251
- } else if (/true|false/.test(match)) {
252
- cls = 'boolean';
253
- } else if (/null/.test(match)) {
254
- cls = 'null';
255
- }
256
- return '<span class="' + cls + '">' + match + '</span>';
257
- });
258
- } else if (block.classList.contains('language-python')) {
259
- html = html.replace(/\b(def|class|import|from|return|if|else|elif|for|while|try|except|with|as|pass|break|continue|print|in|is|not|and|or)\b/g, '<span class="keyword">$1</span>');
260
- html = html.replace(/(['"])(?:(?=(\\?))\2.)*?\1/g, '<span class="string">$&</span>');
261
- html = html.replace(/\b\d+\b/g, '<span class="number">$&</span>');
262
- html = html.replace(/#.*/g, '<span class="comment">$&</span>');
263
- }
264
- block.innerHTML = html;
265
- });
266
- }
267
- window.onload = highlightAll;
268
- </script>
269
-
270
- </head>
271
- <body>
272
- <div class="container">
273
- <header class="header">
274
- <span class="brand-badge">Multi Agent Data Analysis with Crew AI</span>
275
- <h1>Data Analysis Report</h1>
276
- <p class="subtitle">Data Analysis as a Service | Automated insights generated by multi-agent swarm</p>
277
- </header>
278
-
279
- <div class="status-banner">
280
- <div class="status-dot"></div>
281
- <span>Pipeline executed successfully. All agents completed their tasks.</span>
282
- </div>
283
-
284
-
285
- <section class="section">
286
- <div class="section-header">
287
- <h2>Dataset Preview</h2>
288
- <span class="step-number">01</span>
289
- </div>
290
- <div class="table-container">
291
- <table class="dataframe data-table">
292
- <thead>
293
- <tr style="text-align: right;">
294
- <th>Country or territory name</th>
295
- <th>ISO 2-character country/territory code</th>
296
- <th>ISO 3-character country/territory code</th>
297
- <th>ISO numeric country/territory code</th>
298
- <th>Region</th>
299
- <th>Year</th>
300
- <th>Estimated total population number</th>
301
- <th>Estimated prevalence of TB (all forms) per 100 000 population</th>
302
- <th>Estimated prevalence of TB (all forms) per 100 000 population, low bound</th>
303
- <th>Estimated prevalence of TB (all forms) per 100 000 population, high bound</th>
304
- <th>Estimated prevalence of TB (all forms)</th>
305
- <th>Estimated prevalence of TB (all forms), low bound</th>
306
- <th>Estimated prevalence of TB (all forms), high bound</th>
307
- <th>Method to derive prevalence estimates</th>
308
- <th>Estimated mortality of TB cases (all forms, excluding HIV) per 100 000 population</th>
309
- <th>Estimated mortality of TB cases (all forms, excluding HIV), per 100 000 population, low bound</th>
310
- <th>Estimated mortality of TB cases (all forms, excluding HIV), per 100 000 population, high bound</th>
311
- <th>Estimated number of deaths from TB (all forms, excluding HIV)</th>
312
- <th>Estimated number of deaths from TB (all forms, excluding HIV), low bound</th>
313
- <th>Estimated number of deaths from TB (all forms, excluding HIV), high bound</th>
314
- <th>Estimated mortality of TB cases who are HIV-positive, per 100 000 population</th>
315
- <th>Estimated mortality of TB cases who are HIV-positive, per 100 000 population, low bound</th>
316
- <th>Estimated mortality of TB cases who are HIV-positive, per 100 000 population, high bound</th>
317
- <th>Estimated number of deaths from TB in people who are HIV-positive</th>
318
- <th>Estimated number of deaths from TB in people who are HIV-positive, low bound</th>
319
- <th>Estimated number of deaths from TB in people who are HIV-positive, high bound</th>
320
- <th>Method to derive mortality estimates</th>
321
- <th>Estimated incidence (all forms) per 100 000 population</th>
322
- <th>Estimated incidence (all forms) per 100 000 population, low bound</th>
323
- <th>Estimated incidence (all forms) per 100 000 population, high bound</th>
324
- <th>Estimated number of incident cases (all forms)</th>
325
- <th>Estimated number of incident cases (all forms), low bound</th>
326
- <th>Estimated number of incident cases (all forms), high bound</th>
327
- <th>Method to derive incidence estimates</th>
328
- <th>Estimated HIV in incident TB (percent)</th>
329
- <th>Estimated HIV in incident TB (percent), low bound</th>
330
- <th>Estimated HIV in incident TB (percent), high bound</th>
331
- <th>Estimated incidence of TB cases who are HIV-positive per 100 000 population</th>
332
- <th>Estimated incidence of TB cases who are HIV-positive per 100 000 population, low bound</th>
333
- <th>Estimated incidence of TB cases who are HIV-positive per 100 000 population, high bound</th>
334
- <th>Estimated incidence of TB cases who are HIV-positive</th>
335
- <th>Estimated incidence of TB cases who are HIV-positive, low bound</th>
336
- <th>Estimated incidence of TB cases who are HIV-positive, high bound</th>
337
- <th>Method to derive TBHIV estimates</th>
338
- <th>Case detection rate (all forms), percent</th>
339
- <th>Case detection rate (all forms), percent, low bound</th>
340
- <th>Case detection rate (all forms), percent, high bound</th>
341
- </tr>
342
- </thead>
343
- <tbody>
344
- <tr>
345
- <td>Afghanistan</td>
346
- <td>AF</td>
347
- <td>AFG</td>
348
- <td>4</td>
349
- <td>EMR</td>
350
- <td>1990</td>
351
- <td>11731193</td>
352
- <td>306.0</td>
353
- <td>156.0</td>
354
- <td>506.0</td>
355
- <td>36000.0</td>
356
- <td>18000.0</td>
357
- <td>59000.0</td>
358
- <td>predicted</td>
359
- <td>37.00</td>
360
- <td>24.00</td>
361
- <td>54.00</td>
362
- <td>4300.0</td>
363
- <td>2800.0</td>
364
- <td>6400.0</td>
365
- <td>0.04</td>
366
- <td>0.030000</td>
367
- <td>0.050000</td>
368
- <td>5.0</td>
369
- <td>4.100000</td>
370
- <td>6.000000</td>
371
- <td>Indirect</td>
372
- <td>189.0</td>
373
- <td>157.0</td>
374
- <td>238.0</td>
375
- <td>22000.0</td>
376
- <td>18000.0</td>
377
- <td>28000.0</td>
378
- <td>High income</td>
379
- <td>0.060000</td>
380
- <td>0.040000</td>
381
- <td>0.080000</td>
382
- <td>0.110000</td>
383
- <td>0.08000</td>
384
- <td>0.140000</td>
385
- <td>12.000000</td>
386
- <td>9.400000</td>
387
- <td>16.000000</td>
388
- <td>NaN</td>
389
- <td>20.000000</td>
390
- <td>15.000000</td>
391
- <td>24.000000</td>
392
- </tr>
393
- <tr>
394
- <td>Afghanistan</td>
395
- <td>AF</td>
396
- <td>AFG</td>
397
- <td>4</td>
398
- <td>EMR</td>
399
- <td>1991</td>
400
- <td>12612043</td>
401
- <td>343.0</td>
402
- <td>178.0</td>
403
- <td>562.0</td>
404
- <td>43000.0</td>
405
- <td>22000.0</td>
406
- <td>71000.0</td>
407
- <td>predicted</td>
408
- <td>46.00</td>
409
- <td>29.00</td>
410
- <td>61.00</td>
411
- <td>5800.0</td>
412
- <td>3700.0</td>
413
- <td>7700.0</td>
414
- <td>0.06</td>
415
- <td>0.050000</td>
416
- <td>0.080000</td>
417
- <td>8.0</td>
418
- <td>6.200000</td>
419
- <td>10.000000</td>
420
- <td>Indirect</td>
421
- <td>191.0</td>
422
- <td>167.0</td>
423
- <td>227.0</td>
424
- <td>24000.0</td>
425
- <td>21000.0</td>
426
- <td>29000.0</td>
427
- <td>High income</td>
428
- <td>0.070000</td>
429
- <td>0.060000</td>
430
- <td>0.090000</td>
431
- <td>0.130000</td>
432
- <td>0.11000</td>
433
- <td>0.160000</td>
434
- <td>17.000000</td>
435
- <td>14.000000</td>
436
- <td>20.000000</td>
437
- <td>NaN</td>
438
- <td>96.000000</td>
439
- <td>80.000000</td>
440
- <td>110.000000</td>
441
- </tr>
442
- <tr>
443
- <td>Afghanistan</td>
444
- <td>AF</td>
445
- <td>AFG</td>
446
- <td>4</td>
447
- <td>EMR</td>
448
- <td>1992</td>
449
- <td>13811876</td>
450
- <td>371.0</td>
451
- <td>189.0</td>
452
- <td>614.0</td>
453
- <td>51000.0</td>
454
- <td>26000.0</td>
455
- <td>85000.0</td>
456
- <td>predicted</td>
457
- <td>54.00</td>
458
- <td>34.00</td>
459
- <td>68.00</td>
460
- <td>7400.0</td>
461
- <td>4700.0</td>
462
- <td>9400.0</td>
463
- <td>0.08</td>
464
- <td>0.060000</td>
465
- <td>0.100000</td>
466
- <td>11.0</td>
467
- <td>8.300000</td>
468
- <td>14.000000</td>
469
- <td>Indirect</td>
470
- <td>191.0</td>
471
- <td>171.0</td>
472
- <td>217.0</td>
473
- <td>26000.0</td>
474
- <td>24000.0</td>
475
- <td>30000.0</td>
476
- <td>High income</td>
477
- <td>0.080000</td>
478
- <td>0.070000</td>
479
- <td>0.100000</td>
480
- <td>0.160000</td>
481
- <td>0.14000</td>
482
- <td>0.180000</td>
483
- <td>22.000000</td>
484
- <td>19.000000</td>
485
- <td>24.000000</td>
486
- <td>NaN</td>
487
- <td>68.217851</td>
488
- <td>61.959409</td>
489
- <td>75.854492</td>
490
- </tr>
491
- <tr>
492
- <td>Afghanistan</td>
493
- <td>AF</td>
494
- <td>AFG</td>
495
- <td>4</td>
496
- <td>EMR</td>
497
- <td>1993</td>
498
- <td>15175325</td>
499
- <td>392.0</td>
500
- <td>194.0</td>
501
- <td>657.0</td>
502
- <td>59000.0</td>
503
- <td>30000.0</td>
504
- <td>100000.0</td>
505
- <td>predicted</td>
506
- <td>60.00</td>
507
- <td>38.00</td>
508
- <td>73.00</td>
509
- <td>9100.0</td>
510
- <td>5800.0</td>
511
- <td>11000.0</td>
512
- <td>0.11</td>
513
- <td>0.090000</td>
514
- <td>0.140000</td>
515
- <td>17.0</td>
516
- <td>13.000000</td>
517
- <td>21.000000</td>
518
- <td>Indirect</td>
519
- <td>189.0</td>
520
- <td>171.0</td>
521
- <td>209.0</td>
522
- <td>29000.0</td>
523
- <td>26000.0</td>
524
- <td>32000.0</td>
525
- <td>High income</td>
526
- <td>0.100000</td>
527
- <td>0.090000</td>
528
- <td>0.110000</td>
529
- <td>0.190000</td>
530
- <td>0.17000</td>
531
- <td>0.210000</td>
532
- <td>28.000000</td>
533
- <td>25.000000</td>
534
- <td>31.000000</td>
535
- <td>NaN</td>
536
- <td>68.217851</td>
537
- <td>61.959409</td>
538
- <td>75.854492</td>
539
- </tr>
540
- <tr>
541
- <td>Afghanistan</td>
542
- <td>AF</td>
543
- <td>AFG</td>
544
- <td>4</td>
545
- <td>EMR</td>
546
- <td>1994</td>
547
- <td>16485018</td>
548
- <td>410.0</td>
549
- <td>198.0</td>
550
- <td>697.0</td>
551
- <td>68000.0</td>
552
- <td>33000.0</td>
553
- <td>110000.0</td>
554
- <td>predicted</td>
555
- <td>65.00</td>
556
- <td>41.00</td>
557
- <td>79.00</td>
558
- <td>11000.0</td>
559
- <td>6800.0</td>
560
- <td>13000.0</td>
561
- <td>0.13</td>
562
- <td>0.110000</td>
563
- <td>0.160000</td>
564
- <td>22.0</td>
565
- <td>17.000000</td>
566
- <td>27.000000</td>
567
- <td>Indirect</td>
568
- <td>188.0</td>
569
- <td>169.0</td>
570
- <td>208.0</td>
571
- <td>31000.0</td>
572
- <td>28000.0</td>
573
- <td>34000.0</td>
574
- <td>High income</td>
575
- <td>0.110000</td>
576
- <td>0.100000</td>
577
- <td>0.130000</td>
578
- <td>0.210000</td>
579
- <td>0.18000</td>
580
- <td>0.240000</td>
581
- <td>35.000000</td>
582
- <td>30.000000</td>
583
- <td>39.000000</td>
584
- <td>NaN</td>
585
- <td>68.217851</td>
586
- <td>61.959409</td>
587
- <td>75.854492</td>
588
- </tr>
589
- <tr>
590
- <td>Afghanistan</td>
591
- <td>AF</td>
592
- <td>AFG</td>
593
- <td>4</td>
594
- <td>EMR</td>
595
- <td>1995</td>
596
- <td>17586073</td>
597
- <td>424.0</td>
598
- <td>199.0</td>
599
- <td>733.0</td>
600
- <td>75000.0</td>
601
- <td>35000.0</td>
602
- <td>130000.0</td>
603
- <td>predicted</td>
604
- <td>69.00</td>
605
- <td>45.00</td>
606
- <td>82.00</td>
607
- <td>12000.0</td>
608
- <td>7800.0</td>
609
- <td>14000.0</td>
610
- <td>0.15</td>
611
- <td>0.120000</td>
612
- <td>0.190000</td>
613
- <td>27.0</td>
614
- <td>21.000000</td>
615
- <td>34.000000</td>
616
- <td>Indirect</td>
617
- <td>188.0</td>
618
- <td>166.0</td>
619
- <td>209.0</td>
620
- <td>33000.0</td>
621
- <td>29000.0</td>
622
- <td>37000.0</td>
623
- <td>High income</td>
624
- <td>0.120000</td>
625
- <td>0.100000</td>
626
- <td>0.150000</td>
627
- <td>0.230000</td>
628
- <td>0.21000</td>
629
- <td>0.270000</td>
630
- <td>41.000000</td>
631
- <td>37.000000</td>
632
- <td>47.000000</td>
633
- <td>NaN</td>
634
- <td>68.217851</td>
635
- <td>61.959409</td>
636
- <td>75.854492</td>
637
- </tr>
638
- <tr>
639
- <td>Afghanistan</td>
640
- <td>AF</td>
641
- <td>AFG</td>
642
- <td>4</td>
643
- <td>EMR</td>
644
- <td>1996</td>
645
- <td>18415307</td>
646
- <td>438.0</td>
647
- <td>202.0</td>
648
- <td>764.0</td>
649
- <td>81000.0</td>
650
- <td>37000.0</td>
651
- <td>140000.0</td>
652
- <td>predicted</td>
653
- <td>71.00</td>
654
- <td>48.00</td>
655
- <td>85.00</td>
656
- <td>13000.0</td>
657
- <td>8900.0</td>
658
- <td>16000.0</td>
659
- <td>0.17</td>
660
- <td>0.140000</td>
661
- <td>0.210000</td>
662
- <td>32.0</td>
663
- <td>26.000000</td>
664
- <td>39.000000</td>
665
- <td>Indirect</td>
666
- <td>188.0</td>
667
- <td>169.0</td>
668
- <td>206.0</td>
669
- <td>35000.0</td>
670
- <td>31000.0</td>
671
- <td>38000.0</td>
672
- <td>High income</td>
673
- <td>0.140000</td>
674
- <td>0.120000</td>
675
- <td>0.160000</td>
676
- <td>0.250000</td>
677
- <td>0.23000</td>
678
- <td>0.280000</td>
679
- <td>47.000000</td>
680
- <td>42.000000</td>
681
- <td>52.000000</td>
682
- <td>NaN</td>
683
- <td>68.217851</td>
684
- <td>61.959409</td>
685
- <td>75.854492</td>
686
- </tr>
687
- <tr>
688
- <td>Afghanistan</td>
689
- <td>AF</td>
690
- <td>AFG</td>
691
- <td>4</td>
692
- <td>EMR</td>
693
- <td>1997</td>
694
- <td>19021226</td>
695
- <td>448.0</td>
696
- <td>203.0</td>
697
- <td>788.0</td>
698
- <td>85000.0</td>
699
- <td>39000.0</td>
700
- <td>150000.0</td>
701
- <td>predicted</td>
702
- <td>72.00</td>
703
- <td>51.00</td>
704
- <td>85.00</td>
705
- <td>14000.0</td>
706
- <td>9700.0</td>
707
- <td>16000.0</td>
708
- <td>0.19</td>
709
- <td>0.160000</td>
710
- <td>0.230000</td>
711
- <td>37.0</td>
712
- <td>31.000000</td>
713
- <td>44.000000</td>
714
- <td>Indirect</td>
715
- <td>189.0</td>
716
- <td>172.0</td>
717
- <td>205.0</td>
718
- <td>36000.0</td>
719
- <td>33000.0</td>
720
- <td>39000.0</td>
721
- <td>High income</td>
722
- <td>0.150000</td>
723
- <td>0.130000</td>
724
- <td>0.170000</td>
725
- <td>0.280000</td>
726
- <td>0.26000</td>
727
- <td>0.300000</td>
728
- <td>53.000000</td>
729
- <td>49.000000</td>
730
- <td>58.000000</td>
731
- <td>NaN</td>
732
- <td>3.600000</td>
733
- <td>3.300000</td>
734
- <td>4.000000</td>
735
- </tr>
736
- <tr>
737
- <td>Afghanistan</td>
738
- <td>AF</td>
739
- <td>AFG</td>
740
- <td>4</td>
741
- <td>EMR</td>
742
- <td>1998</td>
743
- <td>19496836</td>
744
- <td>454.0</td>
745
- <td>204.0</td>
746
- <td>800.0</td>
747
- <td>88000.0</td>
748
- <td>40000.0</td>
749
- <td>160000.0</td>
750
- <td>predicted</td>
751
- <td>72.00</td>
752
- <td>51.00</td>
753
- <td>85.00</td>
754
- <td>14000.0</td>
755
- <td>10000.0</td>
756
- <td>17000.0</td>
757
- <td>0.21</td>
758
- <td>0.180000</td>
759
- <td>0.240000</td>
760
- <td>41.0</td>
761
- <td>35.000000</td>
762
- <td>48.000000</td>
763
- <td>Indirect</td>
764
- <td>189.0</td>
765
- <td>174.0</td>
766
- <td>202.0</td>
767
- <td>37000.0</td>
768
- <td>34000.0</td>
769
- <td>39000.0</td>
770
- <td>High income</td>
771
- <td>0.160000</td>
772
- <td>0.140000</td>
773
- <td>0.180000</td>
774
- <td>0.300000</td>
775
- <td>0.27000</td>
776
- <td>0.320000</td>
777
- <td>59.000000</td>
778
- <td>54.000000</td>
779
- <td>63.000000</td>
780
- <td>NaN</td>
781
- <td>8.300000</td>
782
- <td>7.800000</td>
783
- <td>9.100000</td>
784
- </tr>
785
- <tr>
786
- <td>Afghanistan</td>
787
- <td>AF</td>
788
- <td>AFG</td>
789
- <td>4</td>
790
- <td>EMR</td>
791
- <td>1999</td>
792
- <td>19987071</td>
793
- <td>446.0</td>
794
- <td>203.0</td>
795
- <td>782.0</td>
796
- <td>89000.0</td>
797
- <td>41000.0</td>
798
- <td>160000.0</td>
799
- <td>predicted</td>
800
- <td>71.00</td>
801
- <td>50.00</td>
802
- <td>84.00</td>
803
- <td>14000.0</td>
804
- <td>10000.0</td>
805
- <td>17000.0</td>
806
- <td>0.22</td>
807
- <td>0.190000</td>
808
- <td>0.260000</td>
809
- <td>44.0</td>
810
- <td>37.000000</td>
811
- <td>51.000000</td>
812
- <td>Indirect</td>
813
- <td>190.0</td>
814
- <td>175.0</td>
815
- <td>206.0</td>
816
- <td>38000.0</td>
817
- <td>35000.0</td>
818
- <td>41000.0</td>
819
- <td>High income</td>
820
- <td>0.170000</td>
821
- <td>0.150000</td>
822
- <td>0.190000</td>
823
- <td>0.320000</td>
824
- <td>0.29000</td>
825
- <td>0.350000</td>
826
- <td>64.000000</td>
827
- <td>59.000000</td>
828
- <td>70.000000</td>
829
- <td>NaN</td>
830
- <td>8.700000</td>
831
- <td>8.100000</td>
832
- <td>9.500000</td>
833
- </tr>
834
- <tr>
835
- <td>Afghanistan</td>
836
- <td>AF</td>
837
- <td>AFG</td>
838
- <td>4</td>
839
- <td>EMR</td>
840
- <td>2000</td>
841
- <td>20595360</td>
842
- <td>430.0</td>
843
- <td>202.0</td>
844
- <td>742.0</td>
845
- <td>89000.0</td>
846
- <td>42000.0</td>
847
- <td>150000.0</td>
848
- <td>predicted</td>
849
- <td>68.00</td>
850
- <td>48.00</td>
851
- <td>83.00</td>
852
- <td>14000.0</td>
853
- <td>9900.0</td>
854
- <td>17000.0</td>
855
- <td>0.22</td>
856
- <td>0.190000</td>
857
- <td>0.260000</td>
858
- <td>46.0</td>
859
- <td>39.000000</td>
860
- <td>54.000000</td>
861
- <td>Indirect</td>
862
- <td>190.0</td>
863
- <td>175.0</td>
864
- <td>204.0</td>
865
- <td>39000.0</td>
866
- <td>36000.0</td>
867
- <td>42000.0</td>
868
- <td>High income</td>
869
- <td>0.180000</td>
870
- <td>0.160000</td>
871
- <td>0.200000</td>
872
- <td>0.340000</td>
873
- <td>0.31000</td>
874
- <td>0.360000</td>
875
- <td>70.000000</td>
876
- <td>64.000000</td>
877
- <td>75.000000</td>
878
- <td>NaN</td>
879
- <td>18.000000</td>
880
- <td>17.000000</td>
881
- <td>20.000000</td>
882
- </tr>
883
- <tr>
884
- <td>Afghanistan</td>
885
- <td>AF</td>
886
- <td>AFG</td>
887
- <td>4</td>
888
- <td>EMR</td>
889
- <td>2001</td>
890
- <td>21347782</td>
891
- <td>414.0</td>
892
- <td>200.0</td>
893
- <td>704.0</td>
894
- <td>88000.0</td>
895
- <td>43000.0</td>
896
- <td>150000.0</td>
897
- <td>predicted</td>
898
- <td>64.00</td>
899
- <td>45.00</td>
900
- <td>78.00</td>
901
- <td>14000.0</td>
902
- <td>9600.0</td>
903
- <td>17000.0</td>
904
- <td>0.22</td>
905
- <td>0.180000</td>
906
- <td>0.260000</td>
907
- <td>47.0</td>
908
- <td>39.000000</td>
909
- <td>55.000000</td>
910
- <td>Indirect</td>
911
- <td>189.0</td>
912
- <td>175.0</td>
913
- <td>201.0</td>
914
- <td>40000.0</td>
915
- <td>37000.0</td>
916
- <td>43000.0</td>
917
- <td>High income</td>
918
- <td>0.190000</td>
919
- <td>0.170000</td>
920
- <td>0.210000</td>
921
- <td>0.360000</td>
922
- <td>0.33000</td>
923
- <td>0.380000</td>
924
- <td>76.000000</td>
925
- <td>70.000000</td>
926
- <td>81.000000</td>
927
- <td>NaN</td>
928
- <td>25.000000</td>
929
- <td>24.000000</td>
930
- <td>27.000000</td>
931
- </tr>
932
- <tr>
933
- <td>Afghanistan</td>
934
- <td>AF</td>
935
- <td>AFG</td>
936
- <td>4</td>
937
- <td>EMR</td>
938
- <td>2002</td>
939
- <td>22202806</td>
940
- <td>397.0</td>
941
- <td>196.0</td>
942
- <td>667.0</td>
943
- <td>88000.0</td>
944
- <td>44000.0</td>
945
- <td>150000.0</td>
946
- <td>predicted</td>
947
- <td>59.00</td>
948
- <td>42.00</td>
949
- <td>72.00</td>
950
- <td>13000.0</td>
951
- <td>9300.0</td>
952
- <td>16000.0</td>
953
- <td>0.22</td>
954
- <td>0.180000</td>
955
- <td>0.260000</td>
956
- <td>48.0</td>
957
- <td>40.000000</td>
958
- <td>57.000000</td>
959
- <td>Indirect</td>
960
- <td>189.0</td>
961
- <td>176.0</td>
962
- <td>200.0</td>
963
- <td>42000.0</td>
964
- <td>39000.0</td>
965
- <td>44000.0</td>
966
- <td>High income</td>
967
- <td>0.200000</td>
968
- <td>0.180000</td>
969
- <td>0.220000</td>
970
- <td>0.380000</td>
971
- <td>0.35000</td>
972
- <td>0.400000</td>
973
- <td>84.000000</td>
974
- <td>78.000000</td>
975
- <td>89.000000</td>
976
- <td>NaN</td>
977
- <td>33.000000</td>
978
- <td>31.000000</td>
979
- <td>35.000000</td>
980
- </tr>
981
- <tr>
982
- <td>Afghanistan</td>
983
- <td>AF</td>
984
- <td>AFG</td>
985
- <td>4</td>
986
- <td>EMR</td>
987
- <td>2003</td>
988
- <td>23116142</td>
989
- <td>377.0</td>
990
- <td>192.0</td>
991
- <td>622.0</td>
992
- <td>87000.0</td>
993
- <td>44000.0</td>
994
- <td>140000.0</td>
995
- <td>predicted</td>
996
- <td>54.00</td>
997
- <td>38.00</td>
998
- <td>66.00</td>
999
- <td>13000.0</td>
1000
- <td>8800.0</td>
1001
- <td>15000.0</td>
1002
- <td>0.21</td>
1003
- <td>0.180000</td>
1004
- <td>0.250000</td>
1005
- <td>49.0</td>
1006
- <td>41.000000</td>
1007
- <td>58.000000</td>
1008
- <td>Indirect</td>
1009
- <td>189.0</td>
1010
- <td>177.0</td>
1011
- <td>202.0</td>
1012
- <td>44000.0</td>
1013
- <td>41000.0</td>
1014
- <td>47000.0</td>
1015
- <td>High income</td>
1016
- <td>0.210000</td>
1017
- <td>0.190000</td>
1018
- <td>0.230000</td>
1019
- <td>0.400000</td>
1020
- <td>0.37000</td>
1021
- <td>0.430000</td>
1022
- <td>92.000000</td>
1023
- <td>86.000000</td>
1024
- <td>99.000000</td>
1025
- <td>NaN</td>
1026
- <td>32.000000</td>
1027
- <td>30.000000</td>
1028
- <td>34.000000</td>
1029
- </tr>
1030
- <tr>
1031
- <td>Afghanistan</td>
1032
- <td>AF</td>
1033
- <td>AFG</td>
1034
- <td>4</td>
1035
- <td>EMR</td>
1036
- <td>2004</td>
1037
- <td>24018682</td>
1038
- <td>361.0</td>
1039
- <td>187.0</td>
1040
- <td>591.0</td>
1041
- <td>87000.0</td>
1042
- <td>45000.0</td>
1043
- <td>140000.0</td>
1044
- <td>predicted</td>
1045
- <td>50.00</td>
1046
- <td>35.00</td>
1047
- <td>60.00</td>
1048
- <td>12000.0</td>
1049
- <td>8400.0</td>
1050
- <td>15000.0</td>
1051
- <td>0.21</td>
1052
- <td>0.170000</td>
1053
- <td>0.240000</td>
1054
- <td>50.0</td>
1055
- <td>42.000000</td>
1056
- <td>59.000000</td>
1057
- <td>Indirect</td>
1058
- <td>189.0</td>
1059
- <td>176.0</td>
1060
- <td>204.0</td>
1061
- <td>45000.0</td>
1062
- <td>42000.0</td>
1063
- <td>49000.0</td>
1064
- <td>High income</td>
1065
- <td>0.220000</td>
1066
- <td>0.200000</td>
1067
- <td>0.250000</td>
1068
- <td>0.420000</td>
1069
- <td>0.39000</td>
1070
- <td>0.460000</td>
1071
- <td>100.000000</td>
1072
- <td>94.000000</td>
1073
- <td>110.000000</td>
1074
- <td>NaN</td>
1075
- <td>41.000000</td>
1076
- <td>38.000000</td>
1077
- <td>43.000000</td>
1078
- </tr>
1079
- <tr>
1080
- <td>Afghanistan</td>
1081
- <td>AF</td>
1082
- <td>AFG</td>
1083
- <td>4</td>
1084
- <td>EMR</td>
1085
- <td>2005</td>
1086
- <td>24860855</td>
1087
- <td>351.0</td>
1088
- <td>183.0</td>
1089
- <td>571.0</td>
1090
- <td>87000.0</td>
1091
- <td>46000.0</td>
1092
- <td>140000.0</td>
1093
- <td>predicted</td>
1094
- <td>46.00</td>
1095
- <td>32.00</td>
1096
- <td>56.00</td>
1097
- <td>12000.0</td>
1098
- <td>8000.0</td>
1099
- <td>14000.0</td>
1100
- <td>0.21</td>
1101
- <td>0.180000</td>
1102
- <td>0.250000</td>
1103
- <td>52.0</td>
1104
- <td>44.000000</td>
1105
- <td>61.000000</td>
1106
- <td>Indirect</td>
1107
- <td>189.0</td>
1108
- <td>176.0</td>
1109
- <td>203.0</td>
1110
- <td>47000.0</td>
1111
- <td>44000.0</td>
1112
- <td>51000.0</td>
1113
- <td>High income</td>
1114
- <td>0.240000</td>
1115
- <td>0.210000</td>
1116
- <td>0.260000</td>
1117
- <td>0.450000</td>
1118
- <td>0.42000</td>
1119
- <td>0.490000</td>
1120
- <td>110.000000</td>
1121
- <td>100.000000</td>
1122
- <td>120.000000</td>
1123
- <td>NaN</td>
1124
- <td>47.000000</td>
1125
- <td>43.000000</td>
1126
- <td>50.000000</td>
1127
- </tr>
1128
- <tr>
1129
- <td>Afghanistan</td>
1130
- <td>AF</td>
1131
- <td>AFG</td>
1132
- <td>4</td>
1133
- <td>EMR</td>
1134
- <td>2006</td>
1135
- <td>25631282</td>
1136
- <td>342.0</td>
1137
- <td>180.0</td>
1138
- <td>555.0</td>
1139
- <td>88000.0</td>
1140
- <td>46000.0</td>
1141
- <td>140000.0</td>
1142
- <td>predicted</td>
1143
- <td>44.00</td>
1144
- <td>30.00</td>
1145
- <td>53.00</td>
1146
- <td>11000.0</td>
1147
- <td>7800.0</td>
1148
- <td>14000.0</td>
1149
- <td>0.21</td>
1150
- <td>0.170000</td>
1151
- <td>0.250000</td>
1152
- <td>54.0</td>
1153
- <td>45.000000</td>
1154
- <td>64.000000</td>
1155
- <td>Indirect</td>
1156
- <td>189.0</td>
1157
- <td>176.0</td>
1158
- <td>201.0</td>
1159
- <td>48000.0</td>
1160
- <td>45000.0</td>
1161
- <td>51000.0</td>
1162
- <td>High income</td>
1163
- <td>0.250000</td>
1164
- <td>0.230000</td>
1165
- <td>0.280000</td>
1166
- <td>0.480000</td>
1167
- <td>0.44000</td>
1168
- <td>0.510000</td>
1169
- <td>120.000000</td>
1170
- <td>110.000000</td>
1171
- <td>130.000000</td>
1172
- <td>NaN</td>
1173
- <td>53.000000</td>
1174
- <td>50.000000</td>
1175
- <td>56.000000</td>
1176
- </tr>
1177
- <tr>
1178
- <td>Afghanistan</td>
1179
- <td>AF</td>
1180
- <td>AFG</td>
1181
- <td>4</td>
1182
- <td>EMR</td>
1183
- <td>2007</td>
1184
- <td>26349243</td>
1185
- <td>334.0</td>
1186
- <td>176.0</td>
1187
- <td>542.0</td>
1188
- <td>88000.0</td>
1189
- <td>46000.0</td>
1190
- <td>140000.0</td>
1191
- <td>predicted</td>
1192
- <td>42.00</td>
1193
- <td>29.00</td>
1194
- <td>52.00</td>
1195
- <td>11000.0</td>
1196
- <td>7600.0</td>
1197
- <td>14000.0</td>
1198
- <td>0.22</td>
1199
- <td>0.180000</td>
1200
- <td>0.260000</td>
1201
- <td>57.0</td>
1202
- <td>47.000000</td>
1203
- <td>68.000000</td>
1204
- <td>Indirect</td>
1205
- <td>189.0</td>
1206
- <td>176.0</td>
1207
- <td>201.0</td>
1208
- <td>50000.0</td>
1209
- <td>47000.0</td>
1210
- <td>53000.0</td>
1211
- <td>High income</td>
1212
- <td>0.270000</td>
1213
- <td>0.240000</td>
1214
- <td>0.290000</td>
1215
- <td>0.510000</td>
1216
- <td>0.47000</td>
1217
- <td>0.540000</td>
1218
- <td>130.000000</td>
1219
- <td>120.000000</td>
1220
- <td>140.000000</td>
1221
- <td>NaN</td>
1222
- <td>58.000000</td>
1223
- <td>54.000000</td>
1224
- <td>62.000000</td>
1225
- </tr>
1226
- <tr>
1227
- <td>Afghanistan</td>
1228
- <td>AF</td>
1229
- <td>AFG</td>
1230
- <td>4</td>
1231
- <td>EMR</td>
1232
- <td>2008</td>
1233
- <td>27032197</td>
1234
- <td>331.0</td>
1235
- <td>175.0</td>
1236
- <td>537.0</td>
1237
- <td>90000.0</td>
1238
- <td>47000.0</td>
1239
- <td>150000.0</td>
1240
- <td>predicted</td>
1241
- <td>41.00</td>
1242
- <td>28.00</td>
1243
- <td>52.00</td>
1244
- <td>11000.0</td>
1245
- <td>7600.0</td>
1246
- <td>14000.0</td>
1247
- <td>0.22</td>
1248
- <td>0.180000</td>
1249
- <td>0.270000</td>
1250
- <td>60.0</td>
1251
- <td>49.000000</td>
1252
- <td>72.000000</td>
1253
- <td>Indirect</td>
1254
- <td>189.0</td>
1255
- <td>177.0</td>
1256
- <td>203.0</td>
1257
- <td>51000.0</td>
1258
- <td>48000.0</td>
1259
- <td>55000.0</td>
1260
- <td>High income</td>
1261
- <td>0.280000</td>
1262
- <td>0.260000</td>
1263
- <td>0.310000</td>
1264
- <td>0.530000</td>
1265
- <td>0.50000</td>
1266
- <td>0.570000</td>
1267
- <td>140.000000</td>
1268
- <td>130.000000</td>
1269
- <td>160.000000</td>
1270
- <td>NaN</td>
1271
- <td>55.000000</td>
1272
- <td>52.000000</td>
1273
- <td>59.000000</td>
1274
- </tr>
1275
- <tr>
1276
- <td>Afghanistan</td>
1277
- <td>AF</td>
1278
- <td>AFG</td>
1279
- <td>4</td>
1280
- <td>EMR</td>
1281
- <td>2009</td>
1282
- <td>27708187</td>
1283
- <td>329.0</td>
1284
- <td>173.0</td>
1285
- <td>533.0</td>
1286
- <td>91000.0</td>
1287
- <td>48000.0</td>
1288
- <td>150000.0</td>
1289
- <td>predicted</td>
1290
- <td>41.00</td>
1291
- <td>28.00</td>
1292
- <td>52.00</td>
1293
- <td>11000.0</td>
1294
- <td>7800.0</td>
1295
- <td>14000.0</td>
1296
- <td>0.23</td>
1297
- <td>0.180000</td>
1298
- <td>0.280000</td>
1299
- <td>63.0</td>
1300
- <td>50.000000</td>
1301
- <td>77.000000</td>
1302
- <td>Indirect</td>
1303
- <td>189.0</td>
1304
- <td>178.0</td>
1305
- <td>204.0</td>
1306
- <td>52000.0</td>
1307
- <td>49000.0</td>
1308
- <td>56000.0</td>
1309
- <td>High income</td>
1310
- <td>0.300000</td>
1311
- <td>0.270000</td>
1312
- <td>0.330000</td>
1313
- <td>0.560000</td>
1314
- <td>0.52000</td>
1315
- <td>0.610000</td>
1316
- <td>160.000000</td>
1317
- <td>140.000000</td>
1318
- <td>170.000000</td>
1319
- <td>NaN</td>
1320
- <td>50.000000</td>
1321
- <td>46.000000</td>
1322
- <td>53.000000</td>
1323
- </tr>
1324
- <tr>
1325
- <td>Afghanistan</td>
1326
- <td>AF</td>
1327
- <td>AFG</td>
1328
- <td>4</td>
1329
- <td>EMR</td>
1330
- <td>2010</td>
1331
- <td>28397812</td>
1332
- <td>329.0</td>
1333
- <td>174.0</td>
1334
- <td>532.0</td>
1335
- <td>93000.0</td>
1336
- <td>49000.0</td>
1337
- <td>150000.0</td>
1338
- <td>predicted</td>
1339
- <td>41.00</td>
1340
- <td>28.00</td>
1341
- <td>52.00</td>
1342
- <td>12000.0</td>
1343
- <td>8000.0</td>
1344
- <td>15000.0</td>
1345
- <td>0.24</td>
1346
- <td>0.190000</td>
1347
- <td>0.290000</td>
1348
- <td>68.0</td>
1349
- <td>55.000000</td>
1350
- <td>82.000000</td>
1351
- <td>Indirect</td>
1352
- <td>189.0</td>
1353
- <td>176.0</td>
1354
- <td>205.0</td>
1355
- <td>54000.0</td>
1356
- <td>50000.0</td>
1357
- <td>58000.0</td>
1358
- <td>High income</td>
1359
- <td>0.310000</td>
1360
- <td>0.270000</td>
1361
- <td>0.340000</td>
1362
- <td>0.580000</td>
1363
- <td>0.53000</td>
1364
- <td>0.640000</td>
1365
- <td>170.000000</td>
1366
- <td>150.000000</td>
1367
- <td>180.000000</td>
1368
- <td>NaN</td>
1369
- <td>52.000000</td>
1370
- <td>48.000000</td>
1371
- <td>56.000000</td>
1372
- </tr>
1373
- <tr>
1374
- <td>Afghanistan</td>
1375
- <td>AF</td>
1376
- <td>AFG</td>
1377
- <td>4</td>
1378
- <td>EMR</td>
1379
- <td>2011</td>
1380
- <td>29105480</td>
1381
- <td>332.0</td>
1382
- <td>175.0</td>
1383
- <td>538.0</td>
1384
- <td>97000.0</td>
1385
- <td>51000.0</td>
1386
- <td>160000.0</td>
1387
- <td>predicted</td>
1388
- <td>41.00</td>
1389
- <td>28.00</td>
1390
- <td>53.00</td>
1391
- <td>12000.0</td>
1392
- <td>8100.0</td>
1393
- <td>15000.0</td>
1394
- <td>0.25</td>
1395
- <td>0.200000</td>
1396
- <td>0.300000</td>
1397
- <td>72.0</td>
1398
- <td>58.000000</td>
1399
- <td>87.000000</td>
1400
- <td>Indirect</td>
1401
- <td>189.0</td>
1402
- <td>174.0</td>
1403
- <td>206.0</td>
1404
- <td>55000.0</td>
1405
- <td>51000.0</td>
1406
- <td>60000.0</td>
1407
- <td>High income</td>
1408
- <td>0.320000</td>
1409
- <td>0.280000</td>
1410
- <td>0.360000</td>
1411
- <td>0.600000</td>
1412
- <td>0.55000</td>
1413
- <td>0.660000</td>
1414
- <td>180.000000</td>
1415
- <td>160.000000</td>
1416
- <td>190.000000</td>
1417
- <td>NaN</td>
1418
- <td>51.000000</td>
1419
- <td>47.000000</td>
1420
- <td>55.000000</td>
1421
- </tr>
1422
- <tr>
1423
- <td>Afghanistan</td>
1424
- <td>AF</td>
1425
- <td>AFG</td>
1426
- <td>4</td>
1427
- <td>EMR</td>
1428
- <td>2012</td>
1429
- <td>29824536</td>
1430
- <td>335.0</td>
1431
- <td>176.0</td>
1432
- <td>545.0</td>
1433
- <td>100000.0</td>
1434
- <td>52000.0</td>
1435
- <td>160000.0</td>
1436
- <td>predicted</td>
1437
- <td>42.00</td>
1438
- <td>28.00</td>
1439
- <td>53.00</td>
1440
- <td>12000.0</td>
1441
- <td>8200.0</td>
1442
- <td>16000.0</td>
1443
- <td>0.25</td>
1444
- <td>0.200000</td>
1445
- <td>0.310000</td>
1446
- <td>76.0</td>
1447
- <td>61.000000</td>
1448
- <td>92.000000</td>
1449
- <td>Indirect</td>
1450
- <td>189.0</td>
1451
- <td>171.0</td>
1452
- <td>209.0</td>
1453
- <td>56000.0</td>
1454
- <td>51000.0</td>
1455
- <td>62000.0</td>
1456
- <td>High income</td>
1457
- <td>0.330000</td>
1458
- <td>0.280000</td>
1459
- <td>0.380000</td>
1460
- <td>0.620000</td>
1461
- <td>0.56000</td>
1462
- <td>0.690000</td>
1463
- <td>190.000000</td>
1464
- <td>170.000000</td>
1465
- <td>210.000000</td>
1466
- <td>NaN</td>
1467
- <td>51.000000</td>
1468
- <td>46.000000</td>
1469
- <td>56.000000</td>
1470
- </tr>
1471
- <tr>
1472
- <td>Afghanistan</td>
1473
- <td>AF</td>
1474
- <td>AFG</td>
1475
- <td>4</td>
1476
- <td>EMR</td>
1477
- <td>2013</td>
1478
- <td>30551674</td>
1479
- <td>340.0</td>
1480
- <td>178.0</td>
1481
- <td>554.0</td>
1482
- <td>100000.0</td>
1483
- <td>54000.0</td>
1484
- <td>170000.0</td>
1485
- <td>predicted</td>
1486
- <td>42.00</td>
1487
- <td>27.00</td>
1488
- <td>53.00</td>
1489
- <td>13000.0</td>
1490
- <td>8400.0</td>
1491
- <td>16000.0</td>
1492
- <td>0.27</td>
1493
- <td>0.210000</td>
1494
- <td>0.330000</td>
1495
- <td>82.0</td>
1496
- <td>65.000000</td>
1497
- <td>100.000000</td>
1498
- <td>Indirect</td>
1499
- <td>189.0</td>
1500
- <td>167.0</td>
1501
- <td>212.0</td>
1502
- <td>58000.0</td>
1503
- <td>51000.0</td>
1504
- <td>65000.0</td>
1505
- <td>High income</td>
1506
- <td>0.340000</td>
1507
- <td>0.290000</td>
1508
- <td>0.400000</td>
1509
- <td>0.640000</td>
1510
- <td>0.57000</td>
1511
- <td>0.720000</td>
1512
- <td>200.000000</td>
1513
- <td>170.000000</td>
1514
- <td>220.000000</td>
1515
- <td>NaN</td>
1516
- <td>53.000000</td>
1517
- <td>47.000000</td>
1518
- <td>60.000000</td>
1519
- </tr>
1520
- <tr>
1521
- <td>Albania</td>
1522
- <td>AL</td>
1523
- <td>ALB</td>
1524
- <td>8</td>
1525
- <td>EUR</td>
1526
- <td>1990</td>
1527
- <td>3446882</td>
1528
- <td>36.0</td>
1529
- <td>17.0</td>
1530
- <td>62.0</td>
1531
- <td>1200.0</td>
1532
- <td>570.0</td>
1533
- <td>2100.0</td>
1534
- <td>predicted</td>
1535
- <td>1.80</td>
1536
- <td>1.40</td>
1537
- <td>2.30</td>
1538
- <td>63.0</td>
1539
- <td>49.0</td>
1540
- <td>80.0</td>
1541
- <td>0.00</td>
1542
- <td>14.224248</td>
1543
- <td>24.824956</td>
1544
- <td>0.0</td>
1545
- <td>2157.701344</td>
1546
- <td>3812.193046</td>
1547
- <td>VR imputed</td>
1548
- <td>24.0</td>
1549
- <td>18.0</td>
1550
- <td>32.0</td>
1551
- <td>840.0</td>
1552
- <td>600.0</td>
1553
- <td>1100.0</td>
1554
- <td>High income</td>
1555
- <td>11.179119</td>
1556
- <td>9.150986</td>
1557
- <td>13.379267</td>
1558
- <td>40.228274</td>
1559
- <td>33.89232</td>
1560
- <td>47.326378</td>
1561
- <td>6095.426979</td>
1562
- <td>5215.147573</td>
1563
- <td>7363.644445</td>
1564
- <td>NaN</td>
1565
- <td>78.000000</td>
1566
- <td>59.000000</td>
1567
- <td>110.000000</td>
1568
- </tr>
1569
- <tr>
1570
- <td>Albania</td>
1571
- <td>AL</td>
1572
- <td>ALB</td>
1573
- <td>8</td>
1574
- <td>EUR</td>
1575
- <td>1991</td>
1576
- <td>3459763</td>
1577
- <td>35.0</td>
1578
- <td>16.0</td>
1579
- <td>61.0</td>
1580
- <td>1200.0</td>
1581
- <td>550.0</td>
1582
- <td>2100.0</td>
1583
- <td>predicted</td>
1584
- <td>1.70</td>
1585
- <td>1.30</td>
1586
- <td>2.10</td>
1587
- <td>58.0</td>
1588
- <td>45.0</td>
1589
- <td>74.0</td>
1590
- <td>0.00</td>
1591
- <td>14.224248</td>
1592
- <td>24.824956</td>
1593
- <td>0.0</td>
1594
- <td>2157.701344</td>
1595
- <td>3812.193046</td>
1596
- <td>VR imputed</td>
1597
- <td>24.0</td>
1598
- <td>18.0</td>
1599
- <td>32.0</td>
1600
- <td>840.0</td>
1601
- <td>610.0</td>
1602
- <td>1100.0</td>
1603
- <td>High income</td>
1604
- <td>11.179119</td>
1605
- <td>9.150986</td>
1606
- <td>13.379267</td>
1607
- <td>40.228274</td>
1608
- <td>33.89232</td>
1609
- <td>47.326378</td>
1610
- <td>6095.426979</td>
1611
- <td>5215.147573</td>
1612
- <td>7363.644445</td>
1613
- <td>NaN</td>
1614
- <td>74.000000</td>
1615
- <td>57.000000</td>
1616
- <td>100.000000</td>
1617
- </tr>
1618
- <tr>
1619
- <td>Albania</td>
1620
- <td>AL</td>
1621
- <td>ALB</td>
1622
- <td>8</td>
1623
- <td>EUR</td>
1624
- <td>1992</td>
1625
- <td>3446858</td>
1626
- <td>34.0</td>
1627
- <td>15.0</td>
1628
- <td>60.0</td>
1629
- <td>1200.0</td>
1630
- <td>520.0</td>
1631
- <td>2100.0</td>
1632
- <td>predicted</td>
1633
- <td>1.10</td>
1634
- <td>0.75</td>
1635
- <td>1.50</td>
1636
- <td>37.0</td>
1637
- <td>26.0</td>
1638
- <td>51.0</td>
1639
- <td>0.00</td>
1640
- <td>14.224248</td>
1641
- <td>24.824956</td>
1642
- <td>0.0</td>
1643
- <td>2157.701344</td>
1644
- <td>3812.193046</td>
1645
- <td>VR</td>
1646
- <td>24.0</td>
1647
- <td>17.0</td>
1648
- <td>33.0</td>
1649
- <td>840.0</td>
1650
- <td>580.0</td>
1651
- <td>1100.0</td>
1652
- <td>High income</td>
1653
- <td>11.179119</td>
1654
- <td>9.150986</td>
1655
- <td>13.379267</td>
1656
- <td>40.228274</td>
1657
- <td>33.89232</td>
1658
- <td>47.326378</td>
1659
- <td>6095.426979</td>
1660
- <td>5215.147573</td>
1661
- <td>7363.644445</td>
1662
- <td>NaN</td>
1663
- <td>68.217851</td>
1664
- <td>61.959409</td>
1665
- <td>75.854492</td>
1666
- </tr>
1667
- <tr>
1668
- <td>Albania</td>
1669
- <td>AL</td>
1670
- <td>ALB</td>
1671
- <td>8</td>
1672
- <td>EUR</td>
1673
- <td>1993</td>
1674
- <td>3417280</td>
1675
- <td>33.0</td>
1676
- <td>15.0</td>
1677
- <td>59.0</td>
1678
- <td>1100.0</td>
1679
- <td>500.0</td>
1680
- <td>2000.0</td>
1681
- <td>predicted</td>
1682
- <td>1.50</td>
1683
- <td>1.10</td>
1684
- <td>1.90</td>
1685
- <td>51.0</td>
1686
- <td>38.0</td>
1687
- <td>66.0</td>
1688
- <td>0.00</td>
1689
- <td>14.224248</td>
1690
- <td>24.824956</td>
1691
- <td>0.0</td>
1692
- <td>2157.701344</td>
1693
- <td>3812.193046</td>
1694
- <td>VR</td>
1695
- <td>24.0</td>
1696
- <td>18.0</td>
1697
- <td>32.0</td>
1698
- <td>830.0</td>
1699
- <td>610.0</td>
1700
- <td>1100.0</td>
1701
- <td>High income</td>
1702
- <td>11.179119</td>
1703
- <td>9.150986</td>
1704
- <td>13.379267</td>
1705
- <td>40.228274</td>
1706
- <td>33.89232</td>
1707
- <td>47.326378</td>
1708
- <td>6095.426979</td>
1709
- <td>5215.147573</td>
1710
- <td>7363.644445</td>
1711
- <td>NaN</td>
1712
- <td>68.217851</td>
1713
- <td>61.959409</td>
1714
- <td>75.854492</td>
1715
- </tr>
1716
- <tr>
1717
- <td>Albania</td>
1718
- <td>AL</td>
1719
- <td>ALB</td>
1720
- <td>8</td>
1721
- <td>EUR</td>
1722
- <td>1994</td>
1723
- <td>3384367</td>
1724
- <td>33.0</td>
1725
- <td>14.0</td>
1726
- <td>59.0</td>
1727
- <td>1100.0</td>
1728
- <td>480.0</td>
1729
- <td>2000.0</td>
1730
- <td>predicted</td>
1731
- <td>1.80</td>
1732
- <td>1.30</td>
1733
- <td>2.30</td>
1734
- <td>61.0</td>
1735
- <td>44.0</td>
1736
- <td>79.0</td>
1737
- <td>0.00</td>
1738
- <td>14.224248</td>
1739
- <td>24.824956</td>
1740
- <td>0.0</td>
1741
- <td>2157.701344</td>
1742
- <td>3812.193046</td>
1743
- <td>VR</td>
1744
- <td>24.0</td>
1745
- <td>21.0</td>
1746
- <td>28.0</td>
1747
- <td>830.0</td>
1748
- <td>700.0</td>
1749
- <td>960.0</td>
1750
- <td>High income</td>
1751
- <td>11.179119</td>
1752
- <td>9.150986</td>
1753
- <td>13.379267</td>
1754
- <td>40.228274</td>
1755
- <td>33.89232</td>
1756
- <td>47.326378</td>
1757
- <td>6095.426979</td>
1758
- <td>5215.147573</td>
1759
- <td>7363.644445</td>
1760
- <td>NaN</td>
1761
- <td>86.000000</td>
1762
- <td>73.000000</td>
1763
- <td>100.000000</td>
1764
- </tr>
1765
- <tr>
1766
- <td>Albania</td>
1767
- <td>AL</td>
1768
- <td>ALB</td>
1769
- <td>8</td>
1770
- <td>EUR</td>
1771
- <td>1995</td>
1772
- <td>3357858</td>
1773
- <td>32.0</td>
1774
- <td>14.0</td>
1775
- <td>58.0</td>
1776
- <td>1100.0</td>
1777
- <td>460.0</td>
1778
- <td>2000.0</td>
1779
- <td>predicted</td>
1780
- <td>0.68</td>
1781
- <td>0.55</td>
1782
- <td>0.83</td>
1783
- <td>23.0</td>
1784
- <td>18.0</td>
1785
- <td>28.0</td>
1786
- <td>0.00</td>
1787
- <td>14.224248</td>
1788
- <td>24.824956</td>
1789
- <td>0.0</td>
1790
- <td>2157.701344</td>
1791
- <td>3812.193046</td>
1792
- <td>VR</td>
1793
- <td>24.0</td>
1794
- <td>20.0</td>
1795
- <td>29.0</td>
1796
- <td>820.0</td>
1797
- <td>680.0</td>
1798
- <td>970.0</td>
1799
- <td>High income</td>
1800
- <td>11.179119</td>
1801
- <td>9.150986</td>
1802
- <td>13.379267</td>
1803
- <td>40.228274</td>
1804
- <td>33.89232</td>
1805
- <td>47.326378</td>
1806
- <td>6095.426979</td>
1807
- <td>5215.147573</td>
1808
- <td>7363.644445</td>
1809
- <td>NaN</td>
1810
- <td>78.000000</td>
1811
- <td>66.000000</td>
1812
- <td>94.000000</td>
1813
- </tr>
1814
- <tr>
1815
- <td>Albania</td>
1816
- <td>AL</td>
1817
- <td>ALB</td>
1818
- <td>8</td>
1819
- <td>EUR</td>
1820
- <td>1996</td>
1821
- <td>3341043</td>
1822
- <td>32.0</td>
1823
- <td>14.0</td>
1824
- <td>58.0</td>
1825
- <td>1100.0</td>
1826
- <td>460.0</td>
1827
- <td>1900.0</td>
1828
- <td>predicted</td>
1829
- <td>1.50</td>
1830
- <td>1.20</td>
1831
- <td>1.80</td>
1832
- <td>49.0</td>
1833
- <td>39.0</td>
1834
- <td>59.0</td>
1835
- <td>0.00</td>
1836
- <td>14.224248</td>
1837
- <td>24.824956</td>
1838
- <td>0.0</td>
1839
- <td>2157.701344</td>
1840
- <td>3812.193046</td>
1841
- <td>VR</td>
1842
- <td>24.0</td>
1843
- <td>22.0</td>
1844
- <td>27.0</td>
1845
- <td>810.0</td>
1846
- <td>730.0</td>
1847
- <td>910.0</td>
1848
- <td>High income</td>
1849
- <td>11.179119</td>
1850
- <td>9.150986</td>
1851
- <td>13.379267</td>
1852
- <td>40.228274</td>
1853
- <td>33.89232</td>
1854
- <td>47.326378</td>
1855
- <td>6095.426979</td>
1856
- <td>5215.147573</td>
1857
- <td>7363.644445</td>
1858
- <td>NaN</td>
1859
- <td>91.000000</td>
1860
- <td>81.000000</td>
1861
- <td>100.000000</td>
1862
- </tr>
1863
- <tr>
1864
- <td>Albania</td>
1865
- <td>AL</td>
1866
- <td>ALB</td>
1867
- <td>8</td>
1868
- <td>EUR</td>
1869
- <td>1997</td>
1870
- <td>3331317</td>
1871
- <td>32.0</td>
1872
- <td>14.0</td>
1873
- <td>58.0</td>
1874
- <td>1100.0</td>
1875
- <td>460.0</td>
1876
- <td>1900.0</td>
1877
- <td>predicted</td>
1878
- <td>0.84</td>
1879
- <td>0.66</td>
1880
- <td>1.10</td>
1881
- <td>28.0</td>
1882
- <td>22.0</td>
1883
- <td>35.0</td>
1884
- <td>0.00</td>
1885
- <td>14.224248</td>
1886
- <td>24.824956</td>
1887
- <td>0.0</td>
1888
- <td>2157.701344</td>
1889
- <td>3812.193046</td>
1890
- <td>VR</td>
1891
- <td>24.0</td>
1892
- <td>21.0</td>
1893
- <td>28.0</td>
1894
- <td>810.0</td>
1895
- <td>690.0</td>
1896
- <td>950.0</td>
1897
- <td>High income</td>
1898
- <td>11.179119</td>
1899
- <td>9.150986</td>
1900
- <td>13.379267</td>
1901
- <td>40.228274</td>
1902
- <td>33.89232</td>
1903
- <td>47.326378</td>
1904
- <td>6095.426979</td>
1905
- <td>5215.147573</td>
1906
- <td>7363.644445</td>
1907
- <td>NaN</td>
1908
- <td>81.000000</td>
1909
- <td>69.000000</td>
1910
- <td>95.000000</td>
1911
- </tr>
1912
- <tr>
1913
- <td>Albania</td>
1914
- <td>AL</td>
1915
- <td>ALB</td>
1916
- <td>8</td>
1917
- <td>EUR</td>
1918
- <td>1998</td>
1919
- <td>3325456</td>
1920
- <td>36.0</td>
1921
- <td>16.0</td>
1922
- <td>64.0</td>
1923
- <td>1200.0</td>
1924
- <td>550.0</td>
1925
- <td>2100.0</td>
1926
- <td>predicted</td>
1927
- <td>0.94</td>
1928
- <td>0.73</td>
1929
- <td>1.20</td>
1930
- <td>31.0</td>
1931
- <td>24.0</td>
1932
- <td>39.0</td>
1933
- <td>0.00</td>
1934
- <td>14.224248</td>
1935
- <td>24.824956</td>
1936
- <td>0.0</td>
1937
- <td>2157.701344</td>
1938
- <td>3812.193046</td>
1939
- <td>VR</td>
1940
- <td>26.0</td>
1941
- <td>22.0</td>
1942
- <td>30.0</td>
1943
- <td>860.0</td>
1944
- <td>730.0</td>
1945
- <td>1000.0</td>
1946
- <td>High income</td>
1947
- <td>11.179119</td>
1948
- <td>9.150986</td>
1949
- <td>13.379267</td>
1950
- <td>40.228274</td>
1951
- <td>33.89232</td>
1952
- <td>47.326378</td>
1953
- <td>6095.426979</td>
1954
- <td>5215.147573</td>
1955
- <td>7363.644445</td>
1956
- <td>NaN</td>
1957
- <td>80.000000</td>
1958
- <td>69.000000</td>
1959
- <td>95.000000</td>
1960
- </tr>
1961
- <tr>
1962
- <td>Albania</td>
1963
- <td>AL</td>
1964
- <td>ALB</td>
1965
- <td>8</td>
1966
- <td>EUR</td>
1967
- <td>1999</td>
1968
- <td>3317941</td>
1969
- <td>41.0</td>
1970
- <td>19.0</td>
1971
- <td>70.0</td>
1972
- <td>1400.0</td>
1973
- <td>640.0</td>
1974
- <td>2300.0</td>
1975
- <td>predicted</td>
1976
- <td>0.79</td>
1977
- <td>0.59</td>
1978
- <td>1.00</td>
1979
- <td>26.0</td>
1980
- <td>20.0</td>
1981
- <td>34.0</td>
1982
- <td>0.00</td>
1983
- <td>14.224248</td>
1984
- <td>24.824956</td>
1985
- <td>0.0</td>
1986
- <td>2157.701344</td>
1987
- <td>3812.193046</td>
1988
- <td>VR</td>
1989
- <td>27.0</td>
1990
- <td>23.0</td>
1991
- <td>32.0</td>
1992
- <td>910.0</td>
1993
- <td>770.0</td>
1994
- <td>1100.0</td>
1995
- <td>High income</td>
1996
- <td>11.179119</td>
1997
- <td>9.150986</td>
1998
- <td>13.379267</td>
1999
- <td>40.228274</td>
2000
- <td>33.89232</td>
2001
- <td>47.326378</td>
2002
- <td>6095.426979</td>
2003
- <td>5215.147573</td>
2004
- <td>7363.644445</td>
2005
- <td>NaN</td>
2006
- <td>80.000000</td>
2007
- <td>69.000000</td>
2008
- <td>95.000000</td>
2009
- </tr>
2010
- <tr>
2011
- <td>Albania</td>
2012
- <td>AL</td>
2013
- <td>ALB</td>
2014
- <td>8</td>
2015
- <td>EUR</td>
2016
- <td>2000</td>
2017
- <td>3304948</td>
2018
- <td>30.0</td>
2019
- <td>13.0</td>
2020
- <td>54.0</td>
2021
- <td>980.0</td>
2022
- <td>410.0</td>
2023
- <td>1800.0</td>
2024
- <td>predicted</td>
2025
- <td>0.82</td>
2026
- <td>0.57</td>
2027
- <td>1.10</td>
2028
- <td>27.0</td>
2029
- <td>19.0</td>
2030
- <td>37.0</td>
2031
- <td>0.00</td>
2032
- <td>14.224248</td>
2033
- <td>24.824956</td>
2034
- <td>0.0</td>
2035
- <td>2157.701344</td>
2036
- <td>3812.193046</td>
2037
- <td>VR</td>
2038
- <td>23.0</td>
2039
- <td>19.0</td>
2040
- <td>26.0</td>
2041
- <td>750.0</td>
2042
- <td>630.0</td>
2043
- <td>870.0</td>
2044
- <td>High income</td>
2045
- <td>11.179119</td>
2046
- <td>9.150986</td>
2047
- <td>13.379267</td>
2048
- <td>40.228274</td>
2049
- <td>33.89232</td>
2050
- <td>47.326378</td>
2051
- <td>6095.426979</td>
2052
- <td>5215.147573</td>
2053
- <td>7363.644445</td>
2054
- <td>NaN</td>
2055
- <td>81.000000</td>
2056
- <td>69.000000</td>
2057
- <td>95.000000</td>
2058
- </tr>
2059
- <tr>
2060
- <td>Albania</td>
2061
- <td>AL</td>
2062
- <td>ALB</td>
2063
- <td>8</td>
2064
- <td>EUR</td>
2065
- <td>2001</td>
2066
- <td>3286084</td>
2067
- <td>26.0</td>
2068
- <td>10.0</td>
2069
- <td>49.0</td>
2070
- <td>860.0</td>
2071
- <td>340.0</td>
2072
- <td>1600.0</td>
2073
- <td>predicted</td>
2074
- <td>0.68</td>
2075
- <td>0.50</td>
2076
- <td>0.89</td>
2077
- <td>22.0</td>
2078
- <td>16.0</td>
2079
- <td>29.0</td>
2080
- <td>0.00</td>
2081
- <td>14.224248</td>
2082
- <td>24.824956</td>
2083
- <td>0.0</td>
2084
- <td>2157.701344</td>
2085
- <td>3812.193046</td>
2086
- <td>VR</td>
2087
- <td>21.0</td>
2088
- <td>18.0</td>
2089
- <td>24.0</td>
2090
- <td>690.0</td>
2091
- <td>580.0</td>
2092
- <td>800.0</td>
2093
- <td>High income</td>
2094
- <td>11.179119</td>
2095
- <td>9.150986</td>
2096
- <td>13.379267</td>
2097
- <td>40.228274</td>
2098
- <td>33.89232</td>
2099
- <td>47.326378</td>
2100
- <td>6095.426979</td>
2101
- <td>5215.147573</td>
2102
- <td>7363.644445</td>
2103
- <td>NaN</td>
2104
- <td>81.000000</td>
2105
- <td>69.000000</td>
2106
- <td>95.000000</td>
2107
- </tr>
2108
- <tr>
2109
- <td>Albania</td>
2110
- <td>AL</td>
2111
- <td>ALB</td>
2112
- <td>8</td>
2113
- <td>EUR</td>
2114
- <td>2002</td>
2115
- <td>3263596</td>
2116
- <td>31.0</td>
2117
- <td>14.0</td>
2118
- <td>55.0</td>
2119
- <td>1000.0</td>
2120
- <td>460.0</td>
2121
- <td>1800.0</td>
2122
- <td>predicted</td>
2123
- <td>0.71</td>
2124
- <td>0.50</td>
2125
- <td>0.94</td>
2126
- <td>23.0</td>
2127
- <td>16.0</td>
2128
- <td>31.0</td>
2129
- <td>0.00</td>
2130
- <td>14.224248</td>
2131
- <td>24.824956</td>
2132
- <td>0.0</td>
2133
- <td>2157.701344</td>
2134
- <td>3812.193046</td>
2135
- <td>VR</td>
2136
- <td>23.0</td>
2137
- <td>19.0</td>
2138
- <td>26.0</td>
2139
- <td>740.0</td>
2140
- <td>620.0</td>
2141
- <td>860.0</td>
2142
- <td>High income</td>
2143
- <td>11.179119</td>
2144
- <td>9.150986</td>
2145
- <td>13.379267</td>
2146
- <td>40.228274</td>
2147
- <td>33.89232</td>
2148
- <td>47.326378</td>
2149
- <td>6095.426979</td>
2150
- <td>5215.147573</td>
2151
- <td>7363.644445</td>
2152
- <td>NaN</td>
2153
- <td>81.000000</td>
2154
- <td>69.000000</td>
2155
- <td>95.000000</td>
2156
- </tr>
2157
- <tr>
2158
- <td>Albania</td>
2159
- <td>AL</td>
2160
- <td>ALB</td>
2161
- <td>8</td>
2162
- <td>EUR</td>
2163
- <td>2003</td>
2164
- <td>3239385</td>
2165
- <td>29.0</td>
2166
- <td>13.0</td>
2167
- <td>52.0</td>
2168
- <td>950.0</td>
2169
- <td>430.0</td>
2170
- <td>1700.0</td>
2171
- <td>predicted</td>
2172
- <td>0.61</td>
2173
- <td>0.43</td>
2174
- <td>0.82</td>
2175
- <td>20.0</td>
2176
- <td>14.0</td>
2177
- <td>27.0</td>
2178
- <td>0.00</td>
2179
- <td>14.224248</td>
2180
- <td>24.824956</td>
2181
- <td>0.0</td>
2182
- <td>2157.701344</td>
2183
- <td>3812.193046</td>
2184
- <td>VR</td>
2185
- <td>21.0</td>
2186
- <td>18.0</td>
2187
- <td>25.0</td>
2188
- <td>690.0</td>
2189
- <td>580.0</td>
2190
- <td>800.0</td>
2191
- <td>High income</td>
2192
- <td>11.179119</td>
2193
- <td>9.150986</td>
2194
- <td>13.379267</td>
2195
- <td>40.228274</td>
2196
- <td>33.89232</td>
2197
- <td>47.326378</td>
2198
- <td>6095.426979</td>
2199
- <td>5215.147573</td>
2200
- <td>7363.644445</td>
2201
- <td>NaN</td>
2202
- <td>81.000000</td>
2203
- <td>69.000000</td>
2204
- <td>95.000000</td>
2205
- </tr>
2206
- <tr>
2207
- <td>Albania</td>
2208
- <td>AL</td>
2209
- <td>ALB</td>
2210
- <td>8</td>
2211
- <td>EUR</td>
2212
- <td>2004</td>
2213
- <td>3216197</td>
2214
- <td>30.0</td>
2215
- <td>14.0</td>
2216
- <td>52.0</td>
2217
- <td>960.0</td>
2218
- <td>440.0</td>
2219
- <td>1700.0</td>
2220
- <td>predicted</td>
2221
- <td>0.63</td>
2222
- <td>0.44</td>
2223
- <td>0.85</td>
2224
- <td>20.0</td>
2225
- <td>14.0</td>
2226
- <td>27.0</td>
2227
- <td>0.00</td>
2228
- <td>14.224248</td>
2229
- <td>24.824956</td>
2230
- <td>0.0</td>
2231
- <td>2157.701344</td>
2232
- <td>3812.193046</td>
2233
- <td>VR</td>
2234
- <td>21.0</td>
2235
- <td>18.0</td>
2236
- <td>25.0</td>
2237
- <td>680.0</td>
2238
- <td>570.0</td>
2239
- <td>790.0</td>
2240
- <td>High income</td>
2241
- <td>11.179119</td>
2242
- <td>9.150986</td>
2243
- <td>13.379267</td>
2244
- <td>40.228274</td>
2245
- <td>33.89232</td>
2246
- <td>47.326378</td>
2247
- <td>6095.426979</td>
2248
- <td>5215.147573</td>
2249
- <td>7363.644445</td>
2250
- <td>NaN</td>
2251
- <td>81.000000</td>
2252
- <td>69.000000</td>
2253
- <td>95.000000</td>
2254
- </tr>
2255
- <tr>
2256
- <td>Albania</td>
2257
- <td>AL</td>
2258
- <td>ALB</td>
2259
- <td>8</td>
2260
- <td>EUR</td>
2261
- <td>2005</td>
2262
- <td>3196130</td>
2263
- <td>27.0</td>
2264
- <td>12.0</td>
2265
- <td>48.0</td>
2266
- <td>870.0</td>
2267
- <td>390.0</td>
2268
- <td>1500.0</td>
2269
- <td>predicted</td>
2270
- <td>0.64</td>
2271
- <td>0.45</td>
2272
- <td>0.86</td>
2273
- <td>21.0</td>
2274
- <td>14.0</td>
2275
- <td>28.0</td>
2276
- <td>0.00</td>
2277
- <td>14.224248</td>
2278
- <td>24.824956</td>
2279
- <td>0.0</td>
2280
- <td>2157.701344</td>
2281
- <td>3812.193046</td>
2282
- <td>VR imputed</td>
2283
- <td>20.0</td>
2284
- <td>17.0</td>
2285
- <td>23.0</td>
2286
- <td>630.0</td>
2287
- <td>530.0</td>
2288
- <td>730.0</td>
2289
- <td>High income</td>
2290
- <td>11.179119</td>
2291
- <td>9.150986</td>
2292
- <td>13.379267</td>
2293
- <td>40.228274</td>
2294
- <td>33.89232</td>
2295
- <td>47.326378</td>
2296
- <td>6095.426979</td>
2297
- <td>5215.147573</td>
2298
- <td>7363.644445</td>
2299
- <td>NaN</td>
2300
- <td>81.000000</td>
2301
- <td>69.000000</td>
2302
- <td>95.000000</td>
2303
- </tr>
2304
- <tr>
2305
- <td>Albania</td>
2306
- <td>AL</td>
2307
- <td>ALB</td>
2308
- <td>8</td>
2309
- <td>EUR</td>
2310
- <td>2006</td>
2311
- <td>3179573</td>
2312
- <td>25.0</td>
2313
- <td>11.0</td>
2314
- <td>44.0</td>
2315
- <td>780.0</td>
2316
- <td>340.0</td>
2317
- <td>1400.0</td>
2318
- <td>predicted</td>
2319
- <td>0.64</td>
2320
- <td>0.45</td>
2321
- <td>0.86</td>
2322
- <td>20.0</td>
2323
- <td>14.0</td>
2324
- <td>28.0</td>
2325
- <td>0.00</td>
2326
- <td>14.224248</td>
2327
- <td>24.824956</td>
2328
- <td>0.0</td>
2329
- <td>2157.701344</td>
2330
- <td>3812.193046</td>
2331
- <td>VR imputed</td>
2332
- <td>18.0</td>
2333
- <td>15.0</td>
2334
- <td>21.0</td>
2335
- <td>580.0</td>
2336
- <td>490.0</td>
2337
- <td>680.0</td>
2338
- <td>High income</td>
2339
- <td>11.179119</td>
2340
- <td>9.150986</td>
2341
- <td>13.379267</td>
2342
- <td>40.228274</td>
2343
- <td>33.89232</td>
2344
- <td>47.326378</td>
2345
- <td>6095.426979</td>
2346
- <td>5215.147573</td>
2347
- <td>7363.644445</td>
2348
- <td>NaN</td>
2349
- <td>81.000000</td>
2350
- <td>69.000000</td>
2351
- <td>95.000000</td>
2352
- </tr>
2353
- <tr>
2354
- <td>Albania</td>
2355
- <td>AL</td>
2356
- <td>ALB</td>
2357
- <td>8</td>
2358
- <td>EUR</td>
2359
- <td>2007</td>
2360
- <td>3166222</td>
2361
- <td>23.0</td>
2362
- <td>9.6</td>
2363
- <td>41.0</td>
2364
- <td>710.0</td>
2365
- <td>300.0</td>
2366
- <td>1300.0</td>
2367
- <td>predicted</td>
2368
- <td>0.64</td>
2369
- <td>0.45</td>
2370
- <td>0.86</td>
2371
- <td>20.0</td>
2372
- <td>14.0</td>
2373
- <td>27.0</td>
2374
- <td>0.00</td>
2375
- <td>14.224248</td>
2376
- <td>24.824956</td>
2377
- <td>0.0</td>
2378
- <td>2157.701344</td>
2379
- <td>3812.193046</td>
2380
- <td>VR imputed</td>
2381
- <td>17.0</td>
2382
- <td>15.0</td>
2383
- <td>20.0</td>
2384
- <td>540.0</td>
2385
- <td>460.0</td>
2386
- <td>630.0</td>
2387
- <td>High income</td>
2388
- <td>11.179119</td>
2389
- <td>9.150986</td>
2390
- <td>13.379267</td>
2391
- <td>40.228274</td>
2392
- <td>33.89232</td>
2393
- <td>47.326378</td>
2394
- <td>6095.426979</td>
2395
- <td>5215.147573</td>
2396
- <td>7363.644445</td>
2397
- <td>NaN</td>
2398
- <td>81.000000</td>
2399
- <td>69.000000</td>
2400
- <td>95.000000</td>
2401
- </tr>
2402
- <tr>
2403
- <td>Albania</td>
2404
- <td>AL</td>
2405
- <td>ALB</td>
2406
- <td>8</td>
2407
- <td>EUR</td>
2408
- <td>2008</td>
2409
- <td>3156608</td>
2410
- <td>22.0</td>
2411
- <td>9.5</td>
2412
- <td>40.0</td>
2413
- <td>700.0</td>
2414
- <td>300.0</td>
2415
- <td>1300.0</td>
2416
- <td>predicted</td>
2417
- <td>0.64</td>
2418
- <td>0.45</td>
2419
- <td>0.86</td>
2420
- <td>20.0</td>
2421
- <td>14.0</td>
2422
- <td>27.0</td>
2423
- <td>0.00</td>
2424
- <td>14.224248</td>
2425
- <td>24.824956</td>
2426
- <td>0.0</td>
2427
- <td>2157.701344</td>
2428
- <td>3812.193046</td>
2429
- <td>VR imputed</td>
2430
- <td>17.0</td>
2431
- <td>14.0</td>
2432
- <td>20.0</td>
2433
- <td>530.0</td>
2434
- <td>450.0</td>
2435
- <td>620.0</td>
2436
- <td>High income</td>
2437
- <td>11.179119</td>
2438
- <td>9.150986</td>
2439
- <td>13.379267</td>
2440
- <td>40.228274</td>
2441
- <td>33.89232</td>
2442
- <td>47.326378</td>
2443
- <td>6095.426979</td>
2444
- <td>5215.147573</td>
2445
- <td>7363.644445</td>
2446
- <td>NaN</td>
2447
- <td>81.000000</td>
2448
- <td>69.000000</td>
2449
- <td>95.000000</td>
2450
- </tr>
2451
- <tr>
2452
- <td>Albania</td>
2453
- <td>AL</td>
2454
- <td>ALB</td>
2455
- <td>8</td>
2456
- <td>EUR</td>
2457
- <td>2009</td>
2458
- <td>3151185</td>
2459
- <td>24.0</td>
2460
- <td>11.0</td>
2461
- <td>43.0</td>
2462
- <td>770.0</td>
2463
- <td>350.0</td>
2464
- <td>1400.0</td>
2465
- <td>predicted</td>
2466
- <td>0.64</td>
2467
- <td>0.45</td>
2468
- <td>0.86</td>
2469
- <td>20.0</td>
2470
- <td>14.0</td>
2471
- <td>27.0</td>
2472
- <td>0.00</td>
2473
- <td>14.224248</td>
2474
- <td>24.824956</td>
2475
- <td>0.0</td>
2476
- <td>2157.701344</td>
2477
- <td>3812.193046</td>
2478
- <td>VR imputed</td>
2479
- <td>17.0</td>
2480
- <td>15.0</td>
2481
- <td>20.0</td>
2482
- <td>550.0</td>
2483
- <td>470.0</td>
2484
- <td>640.0</td>
2485
- <td>High income</td>
2486
- <td>11.179119</td>
2487
- <td>9.150986</td>
2488
- <td>13.379267</td>
2489
- <td>40.228274</td>
2490
- <td>33.89232</td>
2491
- <td>47.326378</td>
2492
- <td>6095.426979</td>
2493
- <td>5215.147573</td>
2494
- <td>7363.644445</td>
2495
- <td>NaN</td>
2496
- <td>81.000000</td>
2497
- <td>69.000000</td>
2498
- <td>95.000000</td>
2499
- </tr>
2500
- <tr>
2501
- <td>Albania</td>
2502
- <td>AL</td>
2503
- <td>ALB</td>
2504
- <td>8</td>
2505
- <td>EUR</td>
2506
- <td>2010</td>
2507
- <td>3150143</td>
2508
- <td>23.0</td>
2509
- <td>10.0</td>
2510
- <td>41.0</td>
2511
- <td>730.0</td>
2512
- <td>320.0</td>
2513
- <td>1300.0</td>
2514
- <td>predicted</td>
2515
- <td>0.64</td>
2516
- <td>0.45</td>
2517
- <td>0.86</td>
2518
- <td>20.0</td>
2519
- <td>14.0</td>
2520
- <td>27.0</td>
2521
- <td>0.00</td>
2522
- <td>14.224248</td>
2523
- <td>24.824956</td>
2524
- <td>0.0</td>
2525
- <td>2157.701344</td>
2526
- <td>3812.193046</td>
2527
- <td>VR imputed</td>
2528
- <td>17.0</td>
2529
- <td>14.0</td>
2530
- <td>20.0</td>
2531
- <td>530.0</td>
2532
- <td>450.0</td>
2533
- <td>620.0</td>
2534
- <td>High income</td>
2535
- <td>11.179119</td>
2536
- <td>9.150986</td>
2537
- <td>13.379267</td>
2538
- <td>40.228274</td>
2539
- <td>33.89232</td>
2540
- <td>47.326378</td>
2541
- <td>6095.426979</td>
2542
- <td>5215.147573</td>
2543
- <td>7363.644445</td>
2544
- <td>NaN</td>
2545
- <td>81.000000</td>
2546
- <td>69.000000</td>
2547
- <td>95.000000</td>
2548
- </tr>
2549
- <tr>
2550
- <td>Albania</td>
2551
- <td>AL</td>
2552
- <td>ALB</td>
2553
- <td>8</td>
2554
- <td>EUR</td>
2555
- <td>2011</td>
2556
- <td>3153883</td>
2557
- <td>22.0</td>
2558
- <td>9.7</td>
2559
- <td>40.0</td>
2560
- <td>700.0</td>
2561
- <td>310.0</td>
2562
- <td>1300.0</td>
2563
- <td>predicted</td>
2564
- <td>0.64</td>
2565
- <td>0.45</td>
2566
- <td>0.86</td>
2567
- <td>20.0</td>
2568
- <td>14.0</td>
2569
- <td>27.0</td>
2570
- <td>0.00</td>
2571
- <td>14.224248</td>
2572
- <td>24.824956</td>
2573
- <td>0.0</td>
2574
- <td>2157.701344</td>
2575
- <td>3812.193046</td>
2576
- <td>VR imputed</td>
2577
- <td>17.0</td>
2578
- <td>14.0</td>
2579
- <td>19.0</td>
2580
- <td>520.0</td>
2581
- <td>440.0</td>
2582
- <td>610.0</td>
2583
- <td>High income</td>
2584
- <td>11.179119</td>
2585
- <td>9.150986</td>
2586
- <td>13.379267</td>
2587
- <td>40.228274</td>
2588
- <td>33.89232</td>
2589
- <td>47.326378</td>
2590
- <td>6095.426979</td>
2591
- <td>5215.147573</td>
2592
- <td>7363.644445</td>
2593
- <td>NaN</td>
2594
- <td>81.000000</td>
2595
- <td>69.000000</td>
2596
- <td>95.000000</td>
2597
- </tr>
2598
- <tr>
2599
- <td>Albania</td>
2600
- <td>AL</td>
2601
- <td>ALB</td>
2602
- <td>8</td>
2603
- <td>EUR</td>
2604
- <td>2012</td>
2605
- <td>3162083</td>
2606
- <td>21.0</td>
2607
- <td>8.6</td>
2608
- <td>38.0</td>
2609
- <td>650.0</td>
2610
- <td>270.0</td>
2611
- <td>1200.0</td>
2612
- <td>predicted</td>
2613
- <td>0.64</td>
2614
- <td>0.45</td>
2615
- <td>0.86</td>
2616
- <td>20.0</td>
2617
- <td>14.0</td>
2618
- <td>27.0</td>
2619
- <td>0.00</td>
2620
- <td>14.224248</td>
2621
- <td>24.824956</td>
2622
- <td>0.0</td>
2623
- <td>2157.701344</td>
2624
- <td>3812.193046</td>
2625
- <td>VR imputed</td>
2626
- <td>16.0</td>
2627
- <td>14.0</td>
2628
- <td>19.0</td>
2629
- <td>510.0</td>
2630
- <td>430.0</td>
2631
- <td>590.0</td>
2632
- <td>High income</td>
2633
- <td>11.179119</td>
2634
- <td>9.150986</td>
2635
- <td>13.379267</td>
2636
- <td>40.228274</td>
2637
- <td>33.89232</td>
2638
- <td>47.326378</td>
2639
- <td>6095.426979</td>
2640
- <td>5215.147573</td>
2641
- <td>7363.644445</td>
2642
- <td>NaN</td>
2643
- <td>81.000000</td>
2644
- <td>69.000000</td>
2645
- <td>95.000000</td>
2646
- </tr>
2647
- <tr>
2648
- <td>Albania</td>
2649
- <td>AL</td>
2650
- <td>ALB</td>
2651
- <td>8</td>
2652
- <td>EUR</td>
2653
- <td>2013</td>
2654
- <td>3173271</td>
2655
- <td>27.0</td>
2656
- <td>12.0</td>
2657
- <td>47.0</td>
2658
- <td>850.0</td>
2659
- <td>390.0</td>
2660
- <td>1500.0</td>
2661
- <td>predicted</td>
2662
- <td>0.64</td>
2663
- <td>0.45</td>
2664
- <td>0.86</td>
2665
- <td>20.0</td>
2666
- <td>14.0</td>
2667
- <td>27.0</td>
2668
- <td>0.00</td>
2669
- <td>14.224248</td>
2670
- <td>24.824956</td>
2671
- <td>0.0</td>
2672
- <td>2157.701344</td>
2673
- <td>3812.193046</td>
2674
- <td>VR imputed</td>
2675
- <td>18.0</td>
2676
- <td>16.0</td>
2677
- <td>22.0</td>
2678
- <td>590.0</td>
2679
- <td>500.0</td>
2680
- <td>680.0</td>
2681
- <td>High income</td>
2682
- <td>11.179119</td>
2683
- <td>9.150986</td>
2684
- <td>13.379267</td>
2685
- <td>40.228274</td>
2686
- <td>33.89232</td>
2687
- <td>47.326378</td>
2688
- <td>6095.426979</td>
2689
- <td>5215.147573</td>
2690
- <td>7363.644445</td>
2691
- <td>NaN</td>
2692
- <td>81.000000</td>
2693
- <td>69.000000</td>
2694
- <td>95.000000</td>
2695
- </tr>
2696
- <tr>
2697
- <td>Algeria</td>
2698
- <td>DZ</td>
2699
- <td>DZA</td>
2700
- <td>12</td>
2701
- <td>AFR</td>
2702
- <td>1990</td>
2703
- <td>26239708</td>
2704
- <td>100.0</td>
2705
- <td>51.0</td>
2706
- <td>166.0</td>
2707
- <td>26000.0</td>
2708
- <td>13000.0</td>
2709
- <td>44000.0</td>
2710
- <td>predicted</td>
2711
- <td>11.00</td>
2712
- <td>5.90</td>
2713
- <td>15.00</td>
2714
- <td>2800.0</td>
2715
- <td>1500.0</td>
2716
- <td>4100.0</td>
2717
- <td>0.01</td>
2718
- <td>0.000000</td>
2719
- <td>0.070000</td>
2720
- <td>3.0</td>
2721
- <td>0.000000</td>
2722
- <td>18.000000</td>
2723
- <td>Indirect</td>
2724
- <td>64.0</td>
2725
- <td>53.0</td>
2726
- <td>77.0</td>
2727
- <td>17000.0</td>
2728
- <td>14000.0</td>
2729
- <td>20000.0</td>
2730
- <td>High income</td>
2731
- <td>0.060000</td>
2732
- <td>0.000000</td>
2733
- <td>0.280000</td>
2734
- <td>0.040000</td>
2735
- <td>0.03000</td>
2736
- <td>0.230000</td>
2737
- <td>11.000000</td>
2738
- <td>9.000000</td>
2739
- <td>61.000000</td>
2740
- <td>NaN</td>
2741
- <td>69.000000</td>
2742
- <td>58.000000</td>
2743
- <td>83.000000</td>
2744
- </tr>
2745
- <tr>
2746
- <td>Algeria</td>
2747
- <td>DZ</td>
2748
- <td>DZA</td>
2749
- <td>12</td>
2750
- <td>AFR</td>
2751
- <td>1991</td>
2752
- <td>26893663</td>
2753
- <td>99.0</td>
2754
- <td>51.0</td>
2755
- <td>164.0</td>
2756
- <td>27000.0</td>
2757
- <td>14000.0</td>
2758
- <td>44000.0</td>
2759
- <td>predicted</td>
2760
- <td>10.00</td>
2761
- <td>6.30</td>
2762
- <td>15.00</td>
2763
- <td>2700.0</td>
2764
- <td>1700.0</td>
2765
- <td>4000.0</td>
2766
- <td>0.01</td>
2767
- <td>0.000000</td>
2768
- <td>0.080000</td>
2769
- <td>4.0</td>
2770
- <td>0.000000</td>
2771
- <td>21.000000</td>
2772
- <td>Indirect</td>
2773
- <td>64.0</td>
2774
- <td>57.0</td>
2775
- <td>75.0</td>
2776
- <td>17000.0</td>
2777
- <td>15000.0</td>
2778
- <td>20000.0</td>
2779
- <td>High income</td>
2780
- <td>0.080000</td>
2781
- <td>0.000000</td>
2782
- <td>0.330000</td>
2783
- <td>0.050000</td>
2784
- <td>0.04000</td>
2785
- <td>0.270000</td>
2786
- <td>13.000000</td>
2787
- <td>12.000000</td>
2788
- <td>73.000000</td>
2789
- <td>NaN</td>
2790
- <td>66.000000</td>
2791
- <td>57.000000</td>
2792
- <td>74.000000</td>
2793
- </tr>
2794
- </tbody>
2795
- </table>
2796
- </div>
2797
- </section>
2798
-
2799
-
2800
- <section class="section">
2801
- <div class="section-header">
2802
- <h2>Data Cleaning Steps</h2>
2803
- <span class="step-number">02</span>
2804
- </div>
2805
- <div class="content-wrapper">
2806
- <div class="code-block">
2807
- <pre><code class="language-json">[
2808
- {
2809
- "step": 1,
2810
- "action": "Handle missing values",
2811
- "description": "Replace missing values in columns 'name' and 'age' with empty strings and mean values respectively"
2812
- },
2813
- {
2814
- "step": 2,
2815
- "action": "Remove duplicates",
2816
- "description": "Delete duplicate rows based on 'id' column"
2817
- },
2818
- {
2819
- "step": 3,
2820
- "action": "Data normalization",
2821
- "description": "Scale values in 'salary' column to a range between 0 and 1"
2822
- },
2823
- {
2824
- "step": 4,
2825
- "action": "Outlier detection",
2826
- "description": "Remove rows with values outside 2 standard deviations from the mean in 'age' column"
2827
- },
2828
- {
2829
- "step": 5,
2830
- "action": "Encode categorical variables",
2831
- "description": "One-hot encode 'department' column"
2832
- }
2833
- ]</code></pre>
2834
- </div>
2835
- </div>
2836
- </section>
2837
-
2838
-
2839
- <section class="section">
2840
- <div class="section-header">
2841
- <h2>Dataset Validation Result</h2>
2842
- <span class="step-number">03</span>
2843
- </div>
2844
- <div class="content-wrapper">
2845
- <div class="code-block">
2846
- <pre><code class="language-json">{'decision': 'YES', 'reason': 'The dataset has undergone necessary preprocessing steps including handling missing values, removing duplicates, data normalization, outlier detection, and encoding categorical variables, which suggests it is ready for analysis.'}</code></pre>
2847
- </div>
2848
- </div>
2849
- </section>
2850
-
2851
-
2852
- <section class="section">
2853
- <div class="section-header">
2854
- <h2>Column Relations</h2>
2855
- <span class="step-number">04</span>
2856
- </div>
2857
- <div class="content-wrapper">
2858
- <div class="code-block">
2859
- <pre><code class="language-json">[{"x":"age","y":"salary","type":"scatter"}, {"x":"department","y":"salary","type":"bar"}, {"x":"age","type":"histogram"}, {"x":"salary","type":"histogram"}, {"x":"department","y":"age","type":"box"}, {"x":"age","y":"salary","type":"heatmap"}, {"x":"department","y":"salary","type":"bar"}, {"x":"age","type":"histogram"}]</code></pre>
2860
- </div>
2861
- </div>
2862
- </section>
2863
-
2864
-
2865
- <section class="section">
2866
- <div class="section-header">
2867
- <h2>Visualization Code</h2>
2868
- <span class="step-number">05</span>
2869
- </div>
2870
- <div class="content-wrapper">
2871
- <div class="code-block">
2872
- <pre><code class="language-python">```python
2873
- # Import necessary libraries
2874
- import pandas as pd
2875
- import matplotlib.pyplot as plt
2876
- import seaborn as sns
2877
-
2878
- # Load the dataset
2879
- data = pd.read_csv('data/cleaned_csv.csv')
2880
-
2881
- # Define a function to create plots
2882
- def create_plots(relations):
2883
- for relation in relations:
2884
- if 'y' in relation:
2885
- if relation['type'] == 'scatter':
2886
- # Create scatter plot
2887
- sns.scatterplot(x=relation['x'], y=relation['y'], data=data)
2888
- plt.title(f'Scatter Plot of {relation["x"]} vs {relation["y"]}')
2889
- plt.show()
2890
- elif relation['type'] == 'bar':
2891
- # Create bar plot
2892
- sns.barplot(x=relation['x'], y=relation['y'], data=data)
2893
- plt.title(f'Bar Plot of {relation["x"]} vs {relation["y"]}')
2894
- plt.show()
2895
- elif relation['type'] == 'box':
2896
- # Create box plot
2897
- sns.boxplot(x=relation['x'], y=relation['y'], data=data)
2898
- plt.title(f'Box Plot of {relation["x"]} vs {relation["y"]}')
2899
- plt.show()
2900
- elif relation['type'] == 'heatmap':
2901
- # Create heatmap
2902
- plt.figure(figsize=(10,8))
2903
- sns.heatmap(data.pivot_table(index=relation['x'], columns=relation['y'], aggfunc='size', fill_value=0), annot=True, cmap='Blues')
2904
- plt.title(f'Heatmap of {relation["x"]} vs {relation["y"]}')
2905
- plt.show()
2906
- elif relation['type'] == 'line':
2907
- # Create line plot
2908
- sns.lineplot(x=relation['x'], y=relation['y'], data=data)
2909
- plt.title(f'Line Plot of {relation["x"]} vs {relation["y"]}')
2910
- plt.show()
2911
- else:
2912
- if relation['type'] == 'histogram':
2913
- # Create histogram
2914
- sns.histplot(data[relation['x']], kde=True)
2915
- plt.title(f'Histogram of {relation["x"]}')
2916
- plt.show()
2917
-
2918
- # Define the relations
2919
- relations = [
2920
- {"x":"age","y":"salary","type":"scatter"},
2921
- {"x":"department","y":"salary","type":"bar"},
2922
- {"x":"age","type":"histogram"},
2923
- {"x":"salary","type":"histogram"},
2924
- {"x":"department","y":"age","type":"box"},
2925
- {"x":"age","y":"salary","type":"heatmap"},
2926
- {"x":"department","y":"salary","type":"bar"},
2927
- {"x":"age","type":"histogram"}
2928
- ]
2929
-
2930
- # Create the plots
2931
- create_plots(relations)
2932
- ```</code></pre>
2933
- </div>
2934
- </div>
2935
- </section>
2936
-
2937
-
2938
- <section class="section">
2939
- <div class="section-header">
2940
- <h2>Insights</h2>
2941
- <span class="step-number">06</span>
2942
- </div>
2943
- <div class="content-wrapper">
2944
- <div class="code-block">
2945
- <pre><code class="language-json">[
2946
- {
2947
- "insight": "The relationship between age and salary is a key area of interest, with multiple visualizations (scatter plot, heatmap) suggesting a correlation between the two variables, which could have implications for HR and compensation strategies.",
2948
- "support": "Multiple scatter plots and heatmaps of age vs salary"
2949
- },
2950
- {
2951
- "insight": "Department is a significant factor influencing salary, as evidenced by the bar plots and box plots, which could inform decisions on department-level resource allocation and staffing.",
2952
- "support": "Bar plots of department vs salary and box plots of department vs age"
2953
- },
2954
- {
2955
- "insight": "Age distribution is an important demographic factor, with histograms of age indicating a potential skew towards younger or older employees, which could have implications for training, development, and succession planning.",
2956
- "support": "Histograms of age"
2957
- },
2958
- {
2959
- "insight": "Salary distribution is also a critical aspect, with histograms of salary suggesting a potential range of salaries across the organization, which could inform compensation and benefits strategies.",
2960
- "support": "Histograms of salary"
2961
- },
2962
- {
2963
- "insight": "The interaction between department and age is a complex one, with box plots suggesting varying age distributions across departments, which could have implications for department-level management and leadership development.",
2964
- "support": "Box plots of department vs age"
2965
- }
2966
- ]</code></pre>
2967
- </div>
2968
- </div>
2969
- </section>
2970
-
2971
-
2972
- <footer class="footer">
2973
- <p><strong>Multi Agent Data Analysis with Crew AI</strong></p>
2974
- <p>Developed by Prithiv.A.K, Sebin.S, Sowmiyan.s</p>
2975
- <p style="font-size: 0.75rem; margin-top: 1rem; opacity: 0.7;">Generated on 2025-11-26 11:29:08</p>
2976
- </footer>
2977
- </div>
2978
- </body>
2979
- <!--
2980
- Multi Agent Data Analysis with Crew AI
2981
- Copyright (c) 2025 Sowmiyan S
2982
- Licensed under the MIT License
2983
- -->
2984
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
outputs/op.py DELETED
@@ -1,36 +0,0 @@
1
- # Import required libraries
2
- import pandas as pd
3
- import matplotlib.pyplot as plt
4
- import seaborn as sns
5
-
6
- # Load the dataset
7
- df = pd.read_csv('data/cleaned_csv.csv')
8
-
9
- # Create figure
10
- plt.figure(figsize=(10, 6))
11
-
12
- # Generate plots using the column names from the relations task
13
- for plot_data in [{"x": col_x, "y": col_y, "type": plot_type} for col_x, col_y, plot_type in [
14
- {"x": "col_1", "y": "col_2", "type": "scatter"},
15
- {"x": "col_3", "y": "col_4", "type": "scatter"},
16
- {"x": "col_5", "y": "time", "type": "line"},
17
- {"x": "col_6", "type": "bar"},
18
- {"x": "col_7", "type": "histogram"},
19
- {"x": "col_8", "y": "col_1", "type": "box"}
20
- ]]:
21
- if plot_type == "scatter":
22
- plt.scatter(df[col_x], df[col_y])
23
- elif plot_type == "line":
24
- plt.plot(df[col_x], df[col_y])
25
- elif plot_type == "bar":
26
- plt.bar(df[col_x])
27
- elif plot_type == "histogram":
28
- plt.hist(df[col_x])
29
- elif plot_type == "box":
30
- plt.boxplot([df[col_x]], vert=False)
31
-
32
- # Save the plot
33
- plt.savefig('outputs/plot.png', bbox_inches='tight', dpi=300)
34
-
35
- # Close the plot
36
- plt.close()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tools/__init__.py ADDED
File without changes
tools/__pycache__/dataframe_ops.cpython-310.pyc DELETED
Binary file (532 Bytes)
 
tools/dataframe_ops.py DELETED
@@ -1,23 +0,0 @@
1
- # Multi Agent Data Analysis with Crew AI
2
- # Copyright (c) 2025 Sowmiyan S
3
- # Licensed under the MIT License
4
-
5
- import pandas as pd
6
- import json
7
-
8
- def apply_cleaning(df, cleaning_json):
9
- rules = json.loads(cleaning_json)
10
-
11
- for rule in rules:
12
- if rule["action"] == "drop_nulls":
13
- df = df.dropna()
14
- if rule["action"] == "fill_null":
15
- df[rule["column"]] = df[rule["column"]].fillna(rule["value"])
16
- if rule["action"] == "rename":
17
- df = df.rename(columns={rule["old"]: rule["new"]})
18
-
19
- return df
20
-
21
- # Multi Agent Data Analysis with Crew AI
22
- # Copyright (c) 2025 Sowmiyan S
23
- # Licensed under the MIT License
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tools/dataset_tools.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ from crewai.tools import tool
3
+
4
+ class DatasetTools:
5
+ @tool("Read Dataset Head")
6
+ def read_dataset_head(file_path: str):
7
+ """Reads the first 10 rows of the dataset to understand its structure."""
8
+ try:
9
+ df = pd.read_csv(file_path)
10
+ return df.head(10).to_markdown(index=False)
11
+ except Exception as e:
12
+ return f"Error reading file: {str(e)}"
13
+
14
+ @tool("Get Dataset Info")
15
+ def get_dataset_info(file_path: str):
16
+ """Returns basic information about the dataset: columns, data types, and missing values."""
17
+ try:
18
+ df = pd.read_csv(file_path)
19
+ info = []
20
+ info.append(f"Shape: {df.shape}")
21
+ info.append("\nColumns and Types:")
22
+ for col, dtype in df.dtypes.items():
23
+ missing = df[col].isnull().sum()
24
+ info.append(f"- {col}: {dtype} (Missing: {missing})")
25
+ return "\n".join(info)
26
+ except Exception as e:
27
+ return f"Error analyzing file: {str(e)}"
28
+
29
+ @tool("Get Correlation Matrix")
30
+ def get_correlation_matrix(file_path: str):
31
+ """Calculates the correlation matrix for numeric columns."""
32
+ try:
33
+ df = pd.read_csv(file_path)
34
+ numeric_df = df.select_dtypes(include=['number'])
35
+ if numeric_df.empty:
36
+ return "No numeric columns found."
37
+ return numeric_df.corr().to_markdown()
38
+ except Exception as e:
39
+ return f"Error calculating correlation: {str(e)}"
workflows/__init__.py ADDED
File without changes