File size: 3,063 Bytes
21586f0
 
 
5defcd2
21586f0
 
 
 
 
 
 
 
 
 
5defcd2
21586f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5defcd2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21586f0
 
 
 
 
 
 
 
 
 
 
 
 
5defcd2
21586f0
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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()