// 08_dataframes.ruchy - Working with DataFrames for data analysis
fn main() {
println("=== DataFrames ===\n")
// Creating a DataFrame from CSV string
let df = DataFrame::from_csv_string("name,age,city,salary
Alice,30,NYC,75000
Bob,25,SF,85000
Charlie,35,NYC,95000
Diana,28,LA,70000
Eve,32,NYC,80000")
println("Original DataFrame:")
println(df)
// Filtering rows
println("\n=== Filtering ===")
let adults = df.filter(row => row.age >= 30)
println("People aged 30+:")
println(adults)
// Selecting columns
println("\n=== Column Selection ===")
let names_ages = df.select(["name", "age"])
println("Names and ages only:")
println(names_ages)
// Single column selection
let names_only = df.select("name")
println("\nNames only:")
println(names_only)
// Working with arrays for stats
println("\n=== Array-based Statistics ===")
let ages = [30, 25, 35, 28, 32]
let salaries = [75000, 85000, 95000, 70000, 80000]
println(f"Age sum: {ages.sum()}")
println(f"Age min: {ages.min()}")
println(f"Age max: {ages.max()}")
println(f"Salary sum: {salaries.sum()}")
// Pipeline operations on arrays
println("\n=== Pipeline Operations ===")
let high_salaries = salaries
|> filter(s => s > 75000)
|> map(s => s / 1000)
println(f"High salaries (in thousands): {high_salaries}")
// Combined filtering with multiple conditions
println("\n=== Complex Filtering ===")
let nyc_adults = df.filter(row => row.city == "NYC" && row.age >= 30)
println("NYC residents aged 30+:")
println(nyc_adults)
// Data transformations
println("\n=== Data Transformations ===")
let names = ["Alice", "Bob", "Charlie", "Diana", "Eve"]
let bonuses = salaries |> map(s => s * 0.1)
println(f"Bonuses (10%): {bonuses}")
// Summary statistics
println("\n=== Summary ===")
println(f"Total employees: {names.len()}")
println(f"Total salary budget: ${salaries.sum()}")
println(f"Lowest salary: ${salaries.min()}")
println(f"Highest salary: ${salaries.max()}")
// DataFrame from JSON
println("\n=== DataFrame from JSON ===")
let json_df = DataFrame::from_json("[{\"product\":\"A\",\"price\":100},{\"product\":\"B\",\"price\":200}]")
println("From JSON:")
println(json_df)
println("\n=== DataFrame Operations Complete ===")
}