From 50796d5b4ac31bb738b49741f120611b60e6bfa3 Mon Sep 17 00:00:00 2001 From: Carlo Maria Proietti Date: Sun, 21 Sep 2025 22:07:13 +0200 Subject: [PATCH 1/3] adding from_rows_to_data_frame function --- .../kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt index b532a29368..f4dee013c7 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt @@ -72,6 +72,9 @@ public fun Iterable>.toDataFrame(): DataFrame { } } +@JvmName("toDataFrameMapStringAny?") +public fun Iterable>.toDataFrame(): DataFrame<*> = map { it.toDataRow() }.toDataFrame() + @JvmName("toDataFrameAnyColumn") public fun Iterable.toDataFrame(): AnyFrame = dataFrameOf(this) From 2ad1b89bfdd3cb5c0ff6ff91be0ee4675eb4963b Mon Sep 17 00:00:00 2001 From: Carlo Maria Proietti Date: Mon, 22 Sep 2025 21:42:49 +0200 Subject: [PATCH 2/3] adding test --- .../kotlinx/dataframe/api/toDataFrame.kt | 2 +- .../kotlinx/dataframe/api/toDataFrame.kt | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt index f4dee013c7..0efb9006f5 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt @@ -72,7 +72,7 @@ public fun Iterable>.toDataFrame(): DataFrame { } } -@JvmName("toDataFrameMapStringAny?") +@JvmName("toDataFrameMapStringAnyNullable") public fun Iterable>.toDataFrame(): DataFrame<*> = map { it.toDataRow() }.toDataFrame() @JvmName("toDataFrameAnyColumn") diff --git a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt index c0e4d055bf..bc4fc8c843 100644 --- a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt +++ b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt @@ -425,6 +425,22 @@ class CreateDataFrameTests { df["value"].toList() shouldBe maps } + @Test + fun `should convert iterables of maps representing rows to DataFrame with value column`() { + val maps: Iterable> = listOf(mapOf("a" to 1, "b" to true), mapOf("c" to 2, "d" to false)) + val df = maps.toDataFrame() + df["a"][0] shouldBe 1 + df["b"][0] shouldBe true + df["a"][1] shouldBe null + df["b"][1] shouldBe null + df["c"][0] shouldBe null + df["d"][0] shouldBe null + df["c"][1] shouldBe 2 + df["d"][1] shouldBe false + df.columnsCount() shouldBe 4 + df.rowsCount() shouldBe 2 + } + class NoPublicPropsClass(private val a: Int, private val b: String) @Test From fa40564ef9f22b8630c5a3aa52fb4fc5984d41fb Mon Sep 17 00:00:00 2001 From: Carlo Maria Proietti Date: Mon, 29 Sep 2025 16:40:24 +0200 Subject: [PATCH 3/3] cleaning test --- .../org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt index bc4fc8c843..871fccfec7 100644 --- a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt +++ b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt @@ -427,18 +427,12 @@ class CreateDataFrameTests { @Test fun `should convert iterables of maps representing rows to DataFrame with value column`() { - val maps: Iterable> = listOf(mapOf("a" to 1, "b" to true), mapOf("c" to 2, "d" to false)) + val maps: Iterable> = listOf(mapOf("a" to 1, "b" to true), mapOf("c" to 2, "d" to false),) val df = maps.toDataFrame() df["a"][0] shouldBe 1 df["b"][0] shouldBe true - df["a"][1] shouldBe null - df["b"][1] shouldBe null - df["c"][0] shouldBe null - df["d"][0] shouldBe null df["c"][1] shouldBe 2 df["d"][1] shouldBe false - df.columnsCount() shouldBe 4 - df.rowsCount() shouldBe 2 } class NoPublicPropsClass(private val a: Int, private val b: String)