Spaces:
Sleeping
Sleeping
| 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.") | |