|
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() |