Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -2,29 +2,35 @@ import streamlit as st
|
|
2 |
import pandas as pd
|
3 |
import numpy as np
|
4 |
import requests
|
5 |
-
import plotly.express as px
|
6 |
import io
|
7 |
|
8 |
-
# 設置全局主題
|
9 |
-
theme = px.colors.qualitative.Bold
|
10 |
-
|
11 |
# 下載 CSV 數據
|
12 |
def download_and_load_csv(url):
|
13 |
response = requests.get(url)
|
14 |
response.encoding = 'utf-8'
|
15 |
df = pd.read_csv(io.StringIO(response.text), encoding='utf-8')
|
|
|
|
|
|
|
16 |
return df
|
17 |
|
18 |
# 清理數據並合併
|
19 |
def clean_and_merge_data(urls):
|
20 |
dfs = [download_and_load_csv(url) for url in urls]
|
21 |
-
|
22 |
-
# 合併所有數據
|
23 |
combined_df = pd.concat(dfs, ignore_index=True)
|
24 |
|
25 |
# 指定要清理的排放量欄位
|
26 |
emission_columns = ["範疇一排放量(噸CO2e)", "範疇二排放量(噸CO2e)", "範疇三排放量(噸CO2e)"]
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
# 只清理 emission_columns 內的 0 值,不影響其他欄位
|
29 |
combined_df[emission_columns] = combined_df[emission_columns].replace(0, np.nan).dropna(subset=emission_columns)
|
30 |
|
|
|
2 |
import pandas as pd
|
3 |
import numpy as np
|
4 |
import requests
|
|
|
5 |
import io
|
6 |
|
|
|
|
|
|
|
7 |
# 下載 CSV 數據
|
8 |
def download_and_load_csv(url):
|
9 |
response = requests.get(url)
|
10 |
response.encoding = 'utf-8'
|
11 |
df = pd.read_csv(io.StringIO(response.text), encoding='utf-8')
|
12 |
+
|
13 |
+
# 清理欄位名稱
|
14 |
+
df.columns = df.columns.str.strip().str.replace("\n", "").str.replace("\r", "")
|
15 |
return df
|
16 |
|
17 |
# 清理數據並合併
|
18 |
def clean_and_merge_data(urls):
|
19 |
dfs = [download_and_load_csv(url) for url in urls]
|
|
|
|
|
20 |
combined_df = pd.concat(dfs, ignore_index=True)
|
21 |
|
22 |
# 指定要清理的排放量欄位
|
23 |
emission_columns = ["範疇一排放量(噸CO2e)", "範疇二排放量(噸CO2e)", "範疇三排放量(噸CO2e)"]
|
24 |
|
25 |
+
# 確保所有欄位名稱都乾淨
|
26 |
+
combined_df.columns = combined_df.columns.str.strip().str.replace("\n", "").str.replace("\r", "")
|
27 |
+
|
28 |
+
# 檢查是否有缺失欄位
|
29 |
+
missing_columns = [col for col in emission_columns if col not in combined_df.columns]
|
30 |
+
if missing_columns:
|
31 |
+
st.write(f"❌ 找不到這些欄位: {missing_columns}")
|
32 |
+
return combined_df # 直接返回原始數據,避免程式崩潰
|
33 |
+
|
34 |
# 只清理 emission_columns 內的 0 值,不影響其他欄位
|
35 |
combined_df[emission_columns] = combined_df[emission_columns].replace(0, np.nan).dropna(subset=emission_columns)
|
36 |
|