Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
# Example functions with explanations | |
def example1(): | |
explanation = "Creating a DataFrame from a dictionary." | |
code = "df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]})\ndf" | |
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}) | |
return explanation, code, df | |
def example2(): | |
explanation = "Creating a simple DataFrame." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
return explanation, code, df | |
def example3(): | |
explanation = "Reading a CSV file (using a sample DataFrame)." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf.to_csv('sample.csv', index=False)\ndf = pd.read_csv('sample.csv')\ndf" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
df.to_csv('sample.csv', index=False) | |
df = pd.read_csv('sample.csv') | |
return explanation, code, df | |
def example4(): | |
explanation = "Displaying the first few rows of a DataFrame." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf.head()" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
return explanation, code, df.head() | |
def example5(): | |
explanation = "Selecting a column from a DataFrame." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf['A']" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
return explanation, code, df['A'] | |
def example6(): | |
explanation = "Selecting multiple columns from a DataFrame." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})\ndf[['A', 'C']]" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}) | |
return explanation, code, df[['A', 'C']] | |
def example7(): | |
explanation = "Filtering rows based on a condition." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf[df['A'] > 1]" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
return explanation, code, df[df['A'] > 1] | |
def example8(): | |
explanation = "Adding a new column to a DataFrame." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf['C'] = df['A'] + df['B']\ndf" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
df['C'] = df['A'] + df['B'] | |
return explanation, code, df | |
def example9(): | |
explanation = "Dropping a column from a DataFrame." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})\ndf.drop('B', axis=1)" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}) | |
return explanation, code, df.drop('B', axis=1) | |
def example10(): | |
explanation = "Renaming columns in a DataFrame." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf.rename(columns={'A': 'a', 'B': 'b'})" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
return explanation, code, df.rename(columns={'A': 'a', 'B': 'b'}) | |
def example11(): | |
explanation = "Handling missing data by filling NaNs." | |
code = "df = pd.DataFrame({'A': [1, 2, None], 'B': [4, None, 6]})\ndf.fillna(0)" | |
df = pd.DataFrame({'A': [1, 2, None], 'B': [4, None, 6]}) | |
return explanation, code, df.fillna(0) | |
def example12(): | |
explanation = "Handling missing data by dropping NaNs." | |
code = "df = pd.DataFrame({'A': [1, None, 3], 'B': [None, 5, 6]})\ndf.dropna()" | |
df = pd.DataFrame({'A': [1, None, 3], 'B': [None, 5, 6]}) | |
return explanation, code, df.dropna() | |
def example13(): | |
explanation = "Group by and aggregate a DataFrame." | |
code = "df = pd.DataFrame({'A': ['foo', 'bar', 'foo'], 'B': [1, 2, 3]})\ndf.groupby('A').sum()" | |
df = pd.DataFrame({'A': ['foo', 'bar', 'foo'], 'B': [1, 2, 3]}) | |
return explanation, code, df.groupby('A').sum() | |
def example14(): | |
explanation = "Merging two DataFrames." | |
code = "df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf2 = pd.DataFrame({'A': [1, 2, 3], 'C': [7, 8, 9]})\ndf1.merge(df2, on='A')" | |
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
df2 = pd.DataFrame({'A': [1, 2, 3], 'C': [7, 8, 9]}) | |
return explanation, code, df1.merge(df2, on='A') | |
def example15(): | |
explanation = "Concatenating two DataFrames." | |
code = "df1 = pd.DataFrame({'A': [1, 2, 3]})\ndf2 = pd.DataFrame({'A': [4, 5, 6]})\npd.concat([df1, df2])" | |
df1 = pd.DataFrame({'A': [1, 2, 3]}) | |
df2 = pd.DataFrame({'A': [4, 5, 6]}) | |
return explanation, code, pd.concat([df1, df2]) | |
def example16(): | |
explanation = "Pivoting a DataFrame (using unique index)." | |
code = "df = pd.DataFrame({'A': ['foo', 'bar', 'baz'], 'B': ['one', 'two', 'one'], 'C': [1, 2, 3]})\ndf.pivot(index='A', columns='B', values='C')" | |
df = pd.DataFrame({'A': ['foo', 'bar', 'baz'], 'B': ['one', 'two', 'one'], 'C': [1, 2, 3]}) | |
return explanation, code, df.pivot(index='A', columns='B', values='C') | |
def example17(): | |
explanation = "Melting a DataFrame." | |
code = "df = pd.DataFrame({'A': [1, 2], 'B': [3, 4], 'C': [5, 6]})\npd.melt(df, id_vars=['A'], value_vars=['B', 'C'])" | |
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4], 'C': [5, 6]}) | |
return explanation, code, pd.melt(df, id_vars=['A'], value_vars=['B', 'C']) | |
def example18(): | |
explanation = "Applying a function to a DataFrame." | |
code = "df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf.apply(lambda x: x + 1)" | |
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
return explanation, code, df.apply(lambda x: x + 1) | |
def example19(): | |
explanation = "Joining two DataFrames." | |
code = "df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})\ndf2 = pd.DataFrame({'C': [7, 8, 9]}, index=[0, 1, 2])\ndf1.join(df2)" | |
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) | |
df2 = pd.DataFrame({'C': [7, 8, 9]}, index=[0, 1, 2]) | |
return explanation, code, df1.join(df2) | |
def example20(): | |
explanation = "Sorting a DataFrame by a column." | |
code = "df = pd.DataFrame({'A': [3, 2, 1], 'B': [6, 5, 4]})\ndf.sort_values(by='A')" | |
df = pd.DataFrame({'A': [3, 2, 1], 'B': [6, 5, 4]}) | |
return explanation, code, df.sort_values(by='A') | |
examples = [ | |
("Example 1: Creating a DataFrame from a dictionary", example1), | |
("Example 2: Create a simple DataFrame", example2), | |
("Example 3: Read a CSV file", example3), | |
("Example 4: Display the first few rows of a DataFrame", example4), | |
("Example 5: Select a column from a DataFrame", example5), | |
("Example 6: Select multiple columns from a DataFrame", example6), | |
("Example 7: Filter rows based on a condition", example7), | |
("Example 8: Add a new column to a DataFrame", example8), | |
("Example 9: Drop a column from a DataFrame", example9), | |
("Example 10: Rename columns in a DataFrame", example10), | |
("Example 11: Handle missing data by filling NaNs", example11), | |
("Example 12: Handle missing data by dropping NaNs", example12), | |
("Example 13: Group by and aggregate a DataFrame", example13), | |
("Example 14: Merge two DataFrames", example14), | |
("Example 15: Concatenate two DataFrames", example15), | |
("Example 16: Pivot a DataFrame (using unique index)", example16), | |
("Example 17: Melt a DataFrame", example17), | |
("Example 18: Apply a function to a DataFrame", example18), | |
("Example 19: Join two DataFrames", example19), | |
("Example 20: Sort a DataFrame by a column", example20), | |
] | |
st.title("Pandas Course with Streamlit") | |
for title, func in examples: | |
st.header(title) | |
explanation, code, result = func() | |
st.write(explanation) | |
st.code(code) | |
if st.button(f"Run {title.split(':')[0]}"): | |
if result is not None: | |
st.write("Output:", result) | |