Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -3,7 +3,7 @@ import pandas as pd
|
|
| 3 |
import numpy as np
|
| 4 |
|
| 5 |
# 设置页面布局为宽屏模式,并设置页面标题
|
| 6 |
-
st.set_page_config(layout="wide", page_title="
|
| 7 |
|
| 8 |
|
| 9 |
def clean_movie_title(title):
|
|
@@ -20,16 +20,27 @@ def clean_movie_title(title):
|
|
| 20 |
def style_efficiency(row):
|
| 21 |
"""
|
| 22 |
根据效率值高亮特定行。
|
| 23 |
-
|
| 24 |
"""
|
| 25 |
-
|
|
|
|
|
|
|
| 26 |
default = ''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
seat_efficiency = row.get('座次效率', 0)
|
| 28 |
session_efficiency = row.get('场次效率', 0)
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
|
| 35 |
def process_and_analyze_data(df):
|
|
@@ -71,7 +82,7 @@ def process_and_analyze_data(df):
|
|
| 71 |
|
| 72 |
# --- Streamlit 用户界面 ---
|
| 73 |
|
| 74 |
-
st.title('
|
| 75 |
st.write("上传 `影片映出日累计报表.xlsx` 文件。")
|
| 76 |
|
| 77 |
uploaded_file = st.file_uploader("请在此处上传 Excel 文件", type=['xlsx', 'xls', 'csv'])
|
|
@@ -114,13 +125,14 @@ if uploaded_file is not None:
|
|
| 114 |
st.dataframe(
|
| 115 |
full_day_analysis.style.format(format_config).apply(style_efficiency, axis=1).hide(axis="index"),
|
| 116 |
height=table_height,
|
| 117 |
-
use_container_width=True
|
|
|
|
| 118 |
)
|
| 119 |
else:
|
| 120 |
st.warning("全天数据不足,无法生成分析报告。")
|
| 121 |
|
| 122 |
# --- 2. 黄金时段数据分析 ---
|
| 123 |
-
st.header("黄金时段排片效率分析")
|
| 124 |
|
| 125 |
start_time = pd.to_datetime('14:00:00').time()
|
| 126 |
end_time = pd.to_datetime('21:00:00').time()
|
|
@@ -133,7 +145,8 @@ if uploaded_file is not None:
|
|
| 133 |
st.dataframe(
|
| 134 |
prime_time_analysis.style.format(format_config).apply(style_efficiency, axis=1).hide(axis="index"),
|
| 135 |
height=table_height_prime,
|
| 136 |
-
use_container_width=True
|
|
|
|
| 137 |
)
|
| 138 |
else:
|
| 139 |
st.warning("黄金时段内没有有效场次数据,无法生成分析报告。")
|
|
|
|
| 3 |
import numpy as np
|
| 4 |
|
| 5 |
# 设置页面布局为宽屏模式,并设置页面标题
|
| 6 |
+
st.set_page_config(layout="wide", page_title="影城排片效率分析")
|
| 7 |
|
| 8 |
|
| 9 |
def clean_movie_title(title):
|
|
|
|
| 20 |
def style_efficiency(row):
|
| 21 |
"""
|
| 22 |
根据效率值高亮特定行。
|
| 23 |
+
高于 1.5 的淡绿色,低于 0.5 的淡红色。
|
| 24 |
"""
|
| 25 |
+
# 定义颜色
|
| 26 |
+
green = 'background-color: #E6F5E6;' # 淡绿色
|
| 27 |
+
red = 'background-color: #FFE5E5;' # 淡红色
|
| 28 |
default = ''
|
| 29 |
+
|
| 30 |
+
# 初始化样式列表,长度与行内元素数量一致
|
| 31 |
+
styles = [default] * len(row)
|
| 32 |
+
|
| 33 |
+
# 获取效率值
|
| 34 |
seat_efficiency = row.get('座次效率', 0)
|
| 35 |
session_efficiency = row.get('场次效率', 0)
|
| 36 |
+
|
| 37 |
+
# 判断并应用样式
|
| 38 |
+
if seat_efficiency > 1.5 or session_efficiency > 1.5:
|
| 39 |
+
styles = [green] * len(row)
|
| 40 |
+
elif seat_efficiency < 0.5 or session_efficiency < 0.5:
|
| 41 |
+
styles = [red] * len(row)
|
| 42 |
+
|
| 43 |
+
return styles
|
| 44 |
|
| 45 |
|
| 46 |
def process_and_analyze_data(df):
|
|
|
|
| 82 |
|
| 83 |
# --- Streamlit 用户界面 ---
|
| 84 |
|
| 85 |
+
st.title('影城排片效率分析工具')
|
| 86 |
st.write("上传 `影片映出日累计报表.xlsx` 文件。")
|
| 87 |
|
| 88 |
uploaded_file = st.file_uploader("请在此处上传 Excel 文件", type=['xlsx', 'xls', 'csv'])
|
|
|
|
| 125 |
st.dataframe(
|
| 126 |
full_day_analysis.style.format(format_config).apply(style_efficiency, axis=1).hide(axis="index"),
|
| 127 |
height=table_height,
|
| 128 |
+
use_container_width=True,
|
| 129 |
+
hide_index=True
|
| 130 |
)
|
| 131 |
else:
|
| 132 |
st.warning("全天数据不足,无法生成分析报告。")
|
| 133 |
|
| 134 |
# --- 2. 黄金时段数据分析 ---
|
| 135 |
+
st.header("黄金时段排片效率分析 (14:00-21:00)")
|
| 136 |
|
| 137 |
start_time = pd.to_datetime('14:00:00').time()
|
| 138 |
end_time = pd.to_datetime('21:00:00').time()
|
|
|
|
| 145 |
st.dataframe(
|
| 146 |
prime_time_analysis.style.format(format_config).apply(style_efficiency, axis=1).hide(axis="index"),
|
| 147 |
height=table_height_prime,
|
| 148 |
+
use_container_width=True,
|
| 149 |
+
hide_index = True
|
| 150 |
)
|
| 151 |
else:
|
| 152 |
st.warning("黄金时段内没有有效场次数据,无法生成分析报告。")
|