Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -34,23 +34,20 @@ def beautify_chart(fig):
|
|
34 |
def generate_plots(df, df_name, selected_columns, chart_type):
|
35 |
selected_columns = list(selected_columns) # 確保是列表
|
36 |
|
37 |
-
|
|
|
|
|
|
|
38 |
if "公司名稱" not in df.columns:
|
39 |
st.error("❌ 缺少 公司名稱 欄位,請確認數據格式!")
|
40 |
return
|
41 |
|
42 |
-
# **檢查選擇的列是否存在於 DataFrame 中**
|
43 |
-
missing_columns = [col for col in selected_columns if col not in df.columns]
|
44 |
-
for col in missing_columns:
|
45 |
-
st.warning(f"⚠️ 缺少欄位 {col},將創建默認值填充。")
|
46 |
-
df[col] = 0
|
47 |
-
|
48 |
-
valid_columns = [col for col in selected_columns if col in df.columns]
|
49 |
-
|
50 |
# ✅ **確保所有 y 軸數據與 x 軸 (公司名稱) 長度一致**
|
51 |
-
df = df.dropna(subset=["公司名稱"] +
|
52 |
-
df[
|
53 |
-
|
|
|
|
|
54 |
if not valid_columns:
|
55 |
st.error(f"❌ 選擇的欄位長度與 公司名稱 不匹配,請檢查數據!\n"
|
56 |
f"📊 公司名稱 長度: {len(df['公司名稱'])}\n"
|
@@ -92,9 +89,6 @@ combined_df = pd.concat(dfs, ignore_index=True).fillna(0) # 合併數據並填
|
|
92 |
# **再次填充 NaN 值**
|
93 |
combined_df = combined_df.fillna(0)
|
94 |
|
95 |
-
# **檢查欄位名稱**
|
96 |
-
st.write("數據欄位名稱:", combined_df.columns)
|
97 |
-
|
98 |
# **Streamlit UI**
|
99 |
st.title("📊 台灣企業 ESG 數據分析")
|
100 |
|
|
|
34 |
def generate_plots(df, df_name, selected_columns, chart_type):
|
35 |
selected_columns = list(selected_columns) # 確保是列表
|
36 |
|
37 |
+
if not selected_columns:
|
38 |
+
st.error("❌ 沒有選擇數據欄位,請至少選擇一個!")
|
39 |
+
return
|
40 |
+
|
41 |
if "公司名稱" not in df.columns:
|
42 |
st.error("❌ 缺少 公司名稱 欄位,請確認數據格式!")
|
43 |
return
|
44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
# ✅ **確保所有 y 軸數據與 x 軸 (公司名稱) 長度一致**
|
46 |
+
df = df.dropna(subset=["公司名稱"] + selected_columns) # **移除 NaN 確保長度相同**
|
47 |
+
df[selected_columns] = df[selected_columns].apply(pd.to_numeric, errors='coerce') # **轉換數據類型**
|
48 |
+
|
49 |
+
valid_columns = [col for col in selected_columns if col in df.columns and len(df[col]) == len(df["公司名稱"])]
|
50 |
+
|
51 |
if not valid_columns:
|
52 |
st.error(f"❌ 選擇的欄位長度與 公司名稱 不匹配,請檢查數據!\n"
|
53 |
f"📊 公司名稱 長度: {len(df['公司名稱'])}\n"
|
|
|
89 |
# **再次填充 NaN 值**
|
90 |
combined_df = combined_df.fillna(0)
|
91 |
|
|
|
|
|
|
|
92 |
# **Streamlit UI**
|
93 |
st.title("📊 台灣企業 ESG 數據分析")
|
94 |
|