File size: 1,632 Bytes
292b840
 
 
 
0494a1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import pandas as pd

# Streamlit App
st.title('CSV File Merger')

# File uploaders for multiple CSV files
uploaded_files = st.file_uploader("Upload CSV files", type=["csv"], accept_multiple_files=True)

# Dropdown to select merge type
merge_type = st.selectbox("Select merge type", ["inner", "outer", "left", "right"])

# Text input for common column name
common_column = st.text_input("Enter the common column name")

if len(uploaded_files) > 1 and common_column:
    # Read all uploaded CSV files into a list of DataFrames
    dfs = [pd.read_csv(file) for file in uploaded_files]

    # Display the original DataFrames
    st.subheader('Original DataFrames')
    for i, df in enumerate(dfs):
        st.write(f"DataFrame {i + 1}:")
        st.write(df)

    try:
        # Perform the merge based on the selected type and common column
        merged_df = dfs[0]
        for df in dfs[1:]:
            merged_df = pd.merge(merged_df, df, on=common_column, how=merge_type)
        
        # Display the merged DataFrame
        st.subheader('Merged DataFrame')
        st.write(merged_df)

        # Option to download the merged DataFrame
        st.download_button(
            label="Download Merged DataFrame",
            data=merged_df.to_csv(index=False),
            file_name='merged_data.csv',
            mime='text/csv'
        )
    except KeyError:
        st.error(f"Column '{common_column}' not found in one or more files.")
    except Exception as e:
        st.error(f"An error occurred: {e}")

else:
    st.info("Please upload at least two CSV files and specify the common column name.")