File size: 5,217 Bytes
9dcd3f9
7823114
9dcd3f9
c8e0175
f123b98
 
7823114
 
 
948d7f1
 
 
7823114
 
 
 
923adf2
948d7f1
6a85a81
 
 
 
 
 
948d7f1
6a85a81
 
 
 
 
 
948d7f1
 
 
 
923adf2
 
 
 
 
 
 
 
 
7823114
948d7f1
 
7823114
 
948d7f1
 
 
 
7823114
923adf2
7823114
 
 
 
 
 
923adf2
 
7823114
 
 
 
923adf2
 
7823114
 
 
 
923adf2
 
7823114
 
 
 
923adf2
 
7823114
 
 
 
923adf2
 
7823114
 
 
 
923adf2
 
 
 
 
 
 
7823114
948d7f1
7823114
 
923adf2
7823114
948d7f1
7823114
 
923adf2
7823114
948d7f1
7823114
923adf2
 
7823114
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import streamlit as st
import pandas as pd

def show_multi_table(p1_df, p2_df):
        st.write("------------------")

        p1_df = p1_df.reset_index(drop=True)
        p2_df = p2_df.reset_index(drop=True)

        actual_ind = 0
        for i in range(len(p1_df) - 1, -1, -2): # stepsize because project matchs in both ways and it should only display a match one time
            actual_ind += 1
            match_df = pd.DataFrame()
            row_from_p1 = p1_df.iloc[[i]]
            row_from_p2 = p2_df.iloc[[i]]

            # INTEGRATE IN PREPROCESSING !!!
            # transform strings to list
            try:
                row_from_p1["crs_3_code_list"] = [row_from_p1['crs_3_code'].item().split(";")[:-1]]
                row_from_p2["crs_3_code_list"] = [row_from_p2['crs_3_code'].item().split(";")[:-1]]
            except:
                row_from_p1["crs_3_code_list"] = []
                row_from_p2["crs_3_code_list"] = []

            try:
                row_from_p1["crs_5_code_list"] = [row_from_p1['crs_3_code'].item().split(";")[:-1]]
                row_from_p2["crs_5_code_list"] = [row_from_p2['crs_3_code'].item().split(";")[:-1]]
            except:
                row_from_p1["crs_5_code_list"] = []
                row_from_p2["crs_5_code_list"] = []

            row_from_p1["sdg_list"] = [row_from_p1['sgd_pred_code'].item()]
            row_from_p2["sdg_list"] = [row_from_p2['sgd_pred_code'].item()]

            try:
                row_from_p1["flag"] = f"https://flagicons.lipis.dev/flags/4x3/{row_from_p1['country'].item()[:2].lower()}.svg"
                row_from_p2["flag"] = f"https://flagicons.lipis.dev/flags/4x3/{row_from_p2['country'].item()[:2].lower()}.svg"
            except:
                row_from_p1["flag"] = "https://flagicons.lipis.dev/flags/4x3/xx.svg"
                row_from_p2["flag"] = "https://flagicons.lipis.dev/flags/4x3/xx.svg"
            
            print(row_from_p1["flag"].item())

            # Correctly append rows to match_df
            st.subheader(f"#{actual_ind}")
            st.caption(f"Similarity: {round(row_from_p1['similarity'].item(), 4) * 100}%")
            match_df = pd.concat([row_from_p1, row_from_p2], ignore_index=True)



            #AgGrid(match_df)

            st.dataframe(
                match_df[["iati_id", "title_main", "orga_abbreviation", "client", "description_main", "country", "flag", "sdg_list", "crs_3_code_list", "crs_5_code_list"]],
                use_container_width = True,
                height = 35 + 35 * len(match_df),
                column_config={
                    "iati_id": st.column_config.TextColumn(
                        "IATI ID",
                        help="IATI Project ID",
                        disabled=True,
                        width="small"
                    ),
                    "orga_abbreviation": st.column_config.TextColumn(
                        "Organization",
                        help="If description not in English, description in other language provided",
                        disabled=True,
                        width="small"
                    ),
                    "client": st.column_config.TextColumn(
                        "Client",
                        help="Client organization of customer",
                        disabled=True,
                        width="small"
                    ),
                    "title_main": st.column_config.TextColumn(
                        "Title",
                        help="If title not in English, title in other language provided",
                        disabled=True,
                        width="large"
                    ),
                    "description_main": st.column_config.TextColumn(
                        "Description",
                        help="If description not in English, description in other language provided",
                        disabled=True,
                        width="large"
                    ),
                    "country": st.column_config.TextColumn(
                        "Country",
                        help="Country of project",
                        disabled=True,
                        width="small"
                    ),
                    "flag": st.column_config.ImageColumn(
                        "Flag",
                        help="country flag",
                        width="small"
                    ),
                    "sdg_list": st.column_config.ListColumn(
                        "SDG Prediction",
                        help="Prediction of SDG's",
                        width="small"
                    ),
                    "crs_3_code_list": st.column_config.ListColumn(
                        "CRS 3",
                        help="CRS 3 code given by organization",
                        width="small"
                    ),
                    "crs_5_code_list": st.column_config.ListColumn(
                        "CRS 5",
                        help="CRS 5 code given by organization",
                        width="small"
                    ),
                },
                hide_index=True,
            )

            st.write("------------------")