Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -3,6 +3,7 @@ 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):
|
@@ -37,6 +38,9 @@ def clean_and_merge_data(urls):
|
|
37 |
# 依據 "公司名稱" 進行合併,將相同公司名稱的數據進行加總
|
38 |
merged_df = combined_df.groupby("公司名稱", as_index=False).sum()
|
39 |
|
|
|
|
|
|
|
40 |
return merged_df
|
41 |
|
42 |
# CSV 來源
|
@@ -55,3 +59,17 @@ st.title("台灣企業 ESG 數據分析與揭露")
|
|
55 |
# 顯示清理後的數據
|
56 |
st.subheader("清理 & 合併後的數據預覽")
|
57 |
st.dataframe(cleaned_df)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
import numpy as np
|
4 |
import requests
|
5 |
import io
|
6 |
+
import plotly.express as px
|
7 |
|
8 |
# 下載 CSV 數據
|
9 |
def download_and_load_csv(url):
|
|
|
38 |
# 依據 "公司名稱" 進行合併,將相同公司名稱的數據進行加總
|
39 |
merged_df = combined_df.groupby("公司名稱", as_index=False).sum()
|
40 |
|
41 |
+
# 將 NaN 值替換為 0
|
42 |
+
merged_df = merged_df.fillna(0)
|
43 |
+
|
44 |
return merged_df
|
45 |
|
46 |
# CSV 來源
|
|
|
59 |
# 顯示清理後的數據
|
60 |
st.subheader("清理 & 合併後的數據預覽")
|
61 |
st.dataframe(cleaned_df)
|
62 |
+
|
63 |
+
# 繪製動態圖表
|
64 |
+
st.subheader("ESG 排放量動態圖表")
|
65 |
+
|
66 |
+
# 合併三個範疇的排放量數據,並將其轉換為長格式
|
67 |
+
emission_df = cleaned_df.melt(id_vars=["公司名稱"], value_vars=["範疇一排放量(噸CO2e)", "範疇二排放量(噸CO2e)", "範疇三排放量(噸CO2e)"],
|
68 |
+
var_name="排放範疇", value_name="排放量")
|
69 |
+
|
70 |
+
# 使用 Plotly 繪製動態柱狀圖
|
71 |
+
fig = px.bar(emission_df, x="公司名稱", y="排放量", color="排放範疇", title="各公司 ESG 排放量",
|
72 |
+
labels={"排放量": "排放量 (噸CO2e)", "公司名稱": "公司名稱", "排放範疇": "排放範疇"})
|
73 |
+
|
74 |
+
# 顯示圖表
|
75 |
+
st.plotly_chart(fig)
|