import streamlit as st import pandas as pd import datetime import io def save_text_as_file(text, file_type): current_time = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") file_name = f"text_file_{current_time}.{file_type}" with open(file_name, "w") as file: file.write(text) st.success(f"Text saved as {file_name}") def save_csv_as_excel(text): try: df = pd.read_csv(io.StringIO(text), header=None) if df.iloc[0].dtype == object: header = 0 file_name = f"csv_with_header_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.xlsx" else: header = None file_name = f"csv_without_header_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.xlsx" df.to_excel(file_name, index=False, header=header) st.success(f"CSV data saved as {file_name}") except pd.errors.EmptyDataError: st.error("The pasted text does not contain valid CSV data.") def create_demo_excel_file(): data = { "Name": ["John", "Alice", "Bob"], "Age": [25, 30, 35], "City": ["New York", "London", "Paris"] } df = pd.DataFrame(data) file_name = "demo_excel_file.xlsx" df.to_excel(file_name, index=False) st.success(f"Demo Excel file created: {file_name}") def main(): st.title("AI UI for Text Processing") st.markdown(""" ## Pandas Cheat Sheet | Lesson | Code Example | |--------|-------------| | 1. Import xlsx | `df = pd.read_excel('data.xlsx')` | | 2. Export xlsx | `df.to_excel('output.xlsx', index=False)` | | 3. Create DataFrame | `df = pd.DataFrame(data)` | | 4. Apply function to DataFrame | `df['Column'] = df['Column'].apply(lambda x: x.capitalize())` | | 5. Reduce columns | `df = df[['Column1', 'Column2']]` | | 6. Aggregate data | `df_agg = df.groupby('Column').mean()` | | 7. Create Plotly graph | `fig = px.bar(df, x='Column1', y='Column2')` | | 8. Map values | `df['Column'] = df['Column'].map({'Old': 'New'})` | | 9. Capitalize column | `df['Column'] = df['Column'].str.capitalize()` | | 10. Filter DataFrame | `df_filtered = df[df['Column'] > 10]` | | 11. Sort DataFrame | `df_sorted = df.sort_values('Column')` | | 12. Merge DataFrames | `df_merged = pd.merge(df1, df2, on='Column')` | """) text_input = st.text_area("Paste your text here") if st.button("Process Text"): if text_input.strip() == "": st.warning("Please paste some text.") else: if "," in text_input or "\t" in text_input: save_csv_as_excel(text_input) elif text_input.startswith("#") or text_input.startswith("- "): save_text_as_file(text_input, "md") elif "def" in text_input or "import" in text_input: save_text_as_file(text_input, "py") else: save_text_as_file(text_input, "txt") if st.button("Create Demo Excel File"): create_demo_excel_file() if __name__ == "__main__": main()