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..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,6 +72,9 @@ public fun Iterable>.toDataFrame(): DataFrame { } } +@JvmName("toDataFrameMapStringAnyNullable") +public fun Iterable>.toDataFrame(): DataFrame<*> = map { it.toDataRow() }.toDataFrame() + @JvmName("toDataFrameAnyColumn") public fun Iterable.toDataFrame(): AnyFrame = dataFrameOf(this) 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..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 @@ -425,6 +425,16 @@ 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["c"][1] shouldBe 2 + df["d"][1] shouldBe false + } + class NoPublicPropsClass(private val a: Int, private val b: String) @Test