Created
December 16, 2024 04:58
-
-
Save Abhayparashar31/e0a14fc2bc29091548dd38f0cb524745 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import streamlit as st | |
import pandas as pd | |
from mimesis import Person, Address | |
from mimesis.enums import Gender | |
from io import StringIO | |
# Dictionary of available data generators | |
generators = { | |
"Name": lambda: person.full_name(), | |
"Email": lambda: person.email(), | |
"Address": lambda: address.address(), | |
"Phone Number": lambda: person.telephone(), | |
"Job": lambda: person.occupation(), | |
} | |
# Function to generate data | |
def generate_data(columns, rows): | |
data = {col: [generators[col]() for _ in range(rows)] for col in columns} | |
return pd.DataFrame(data) | |
# Streamlit interface | |
st.title("Test Data Generator 📊") | |
# Sidebar for settings | |
st.sidebar.header("Data Generation Settings") | |
selected_columns = st.sidebar.multiselect("Select Columns:", list(generators.keys())) | |
num_rows = st.sidebar.number_input("Number of Rows:", min_value=1, max_value=1000, value=10) | |
if st.sidebar.button("Generate Data"): | |
if selected_columns: | |
person = Person() # Initialize Mimesis Person provider | |
address = Address() # Initialize Mimesis Address provider | |
df = generate_data(selected_columns, num_rows) | |
st.write("### Generated Data") | |
st.dataframe(df) | |
# Convert DataFrame to CSV and create download link | |
csv = df.to_csv(index=False) | |
st.download_button(label="Download CSV", data=csv, file_name="random_data.csv", mime="text/csv") | |
else: | |
st.warning("Please select at least one column.") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment