DataAnalysis / app.py
Lokesh1024's picture
Update app.py
0494a1c verified
raw
history blame
1.63 kB
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.")