66 lines
2.4 KiB
Kotlin
Vendored
66 lines
2.4 KiB
Kotlin
Vendored
import org.jetbrains.kotlinx.dataframe.*
|
|
import org.jetbrains.kotlinx.dataframe.annotations.*
|
|
import org.jetbrains.kotlinx.dataframe.api.*
|
|
import org.jetbrains.kotlinx.dataframe.io.*
|
|
|
|
fun box(): String {
|
|
// multiple columns
|
|
val personsDf = dataFrameOf(
|
|
"name",
|
|
"age",
|
|
"city",
|
|
"weight",
|
|
"height",
|
|
"yearsToRetirement",
|
|
"workExperienceYears",
|
|
"dependentsCount",
|
|
"annualIncome"
|
|
)(
|
|
"Alice", 15, "London", 99.5, "1.85", 50, 0.toShort(), 0.toByte(), 0L,
|
|
"Bob", 20, "Paris", 140.0, "1.35", 45, 2.toShort(), 0.toByte(), 12000L,
|
|
"Charlie", 100, "Dubai", 75.0, "1.95", 0, 70.toShort(), 0.toByte(), 0L,
|
|
"Rose", 1, "Moscow", 45.33, "0.79", 64, 0.toShort(), 2.toByte(), 0L,
|
|
"Dylan", 35, "London", 23.4, "1.83", 30, 15.toShort(), 1.toByte(), 90000L,
|
|
"Eve", 40, "Paris", 56.72, "1.85", 25, 18.toShort(), 3.toByte(), 125000L,
|
|
"Frank", 55, "Dubai", 78.9, "1.35", 10, 35.toShort(), 2.toByte(), 145000L,
|
|
"Grace", 29, "Moscow", 67.8, "1.65", 36, 5.toShort(), 1.toByte(), 70000L,
|
|
"Hank", 60, "Paris", 80.22, "1.75", 5, 40.toShort(), 4.toByte(), 200000L,
|
|
"Isla", 22, "London", 75.1, "1.85", 43, 1.toShort(), 0.toByte(), 30000L,
|
|
)
|
|
|
|
// scenario #0: all numerical columns
|
|
val res0 = personsDf.std()
|
|
res0.df().compareSchemas()
|
|
|
|
val std01: Double? = res0.age
|
|
val std02: Double? = res0.weight
|
|
val std03: Double? = res0.yearsToRetirement
|
|
val std04: Double? = res0.workExperienceYears
|
|
val std05: Double? = res0.dependentsCount
|
|
val std06: Double? = res0.annualIncome
|
|
|
|
// scenario #1: particular column
|
|
val res1 = personsDf.stdFor { age }
|
|
res1.df().compareSchemas()
|
|
|
|
val std11: Double? = res1.age
|
|
|
|
// scenario #1.1: particular column with converted type
|
|
val res11 = personsDf.stdFor { dependentsCount }
|
|
res11.df().compareSchemas()
|
|
|
|
val std111: Double? = res11.dependentsCount
|
|
|
|
// scenario #2: std of values per columns separately
|
|
val res3 = personsDf.stdFor { age and weight and workExperienceYears and dependentsCount and annualIncome }
|
|
res3.df().compareSchemas()
|
|
|
|
val std31: Double? = res3.age
|
|
val std32: Double? = res3.weight
|
|
val std33: Double? = res3.workExperienceYears
|
|
val std34: Double? = res3.dependentsCount
|
|
val std35: Double? = res3.annualIncome
|
|
|
|
return "OK"
|
|
}
|