Skip to content

Commit 6ea0cfe

Browse files
authored
Merge pull request #1463 from CarloMariaProietti/from_rows_to_DataFrame
From rows to data frame
2 parents 012a66b + 239b1a1 commit 6ea0cfe

3 files changed

Lines changed: 14 additions & 0 deletions

File tree

core/api/core.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4467,6 +4467,7 @@ public final class org/jetbrains/kotlinx/dataframe/api/ToDataFrameKt {
44674467
public static final fun toDataFrameColumnPathAnyNullable (Ljava/lang/Iterable;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
44684468
public static final fun toDataFrameColumnPathAnyNullable (Ljava/util/Map;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
44694469
public static final fun toDataFrameFromPairs (Ljava/lang/Iterable;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
4470+
public static final fun toDataFrameMapStringAnyNullable (Ljava/lang/Iterable;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
44704471
public static final fun toDataFramePairColumnPathAnyCol (Ljava/lang/Iterable;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
44714472
public static final fun toDataFrameT (Ljava/lang/Iterable;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
44724473
}

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ public fun <T> Iterable<DataRow<T>>.toDataFrame(): DataFrame<T> {
7272
}
7373
}
7474

75+
@JvmName("toDataFrameMapStringAnyNullable")
76+
public fun Iterable<Map<String, *>>.toDataFrame(): DataFrame<*> = map { it.toDataRow() }.toDataFrame()
77+
7578
@JvmName("toDataFrameAnyColumn")
7679
public fun Iterable<AnyBaseCol>.toDataFrame(): AnyFrame = dataFrameOf(this)
7780

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,16 @@ class CreateDataFrameTests {
425425
df["value"].toList() shouldBe maps
426426
}
427427

428+
@Test
429+
fun `should convert iterables of maps representing rows to DataFrame with value columns`() {
430+
val maps: Iterable<Map<String, *>> = listOf(mapOf("a" to 1, "b" to true), mapOf("c" to 2, "d" to false))
431+
val df = maps.toDataFrame()
432+
df["a"][0] shouldBe 1
433+
df["b"][0] shouldBe true
434+
df["c"][1] shouldBe 2
435+
df["d"][1] shouldBe false
436+
}
437+
428438
class NoPublicPropsClass(private val a: Int, private val b: String)
429439

430440
@Test

0 commit comments

Comments
 (0)