32 lines
1014 B
Python
32 lines
1014 B
Python
import pandas as pd
|
|
from .base import BaseAnalysis
|
|
from flask import render_template_string
|
|
|
|
class GenerateStatistics(BaseAnalysis):
|
|
name = "Test Statistics (Placeholder)"
|
|
description = "Generates activity statistics grouped by hour."
|
|
|
|
def execute(self, df: pd.DataFrame):
|
|
df["hour"] = df["timestamp"].dt.hour
|
|
statistics = df.groupby("hour").size().reset_index(name="count")
|
|
|
|
# Convert statistics DataFrame to HTML
|
|
table_html = statistics.to_html(classes="table table-bordered table-striped")
|
|
|
|
# Wrap it in Bootstrap styling
|
|
html_content = render_template_string(
|
|
"""
|
|
<div class="card mt-3">
|
|
<div class="card-header">
|
|
<h4>Activity Statistics</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
{{ table_html | safe }}
|
|
</div>
|
|
</div>
|
|
""",
|
|
table_html=table_html
|
|
)
|
|
|
|
return html_content
|