Skip to content

Commit eda4e6e

Browse files
authored
Merge pull request #1433 from CarloMariaProietti/from_map_to_data_row
adding from_map_to_data_row function
2 parents 26ecd0c + 137a8fd commit eda4e6e

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ import org.jetbrains.kotlinx.dataframe.columns.ColumnSet
2020
import org.jetbrains.kotlinx.dataframe.columns.FrameColumn
2121
import org.jetbrains.kotlinx.dataframe.columns.SingleColumn
2222
import org.jetbrains.kotlinx.dataframe.columns.ValueColumn
23+
import org.jetbrains.kotlinx.dataframe.documentation.DocumentationUrls
24+
import org.jetbrains.kotlinx.dataframe.impl.DataRowImpl
2325
import org.jetbrains.kotlinx.dataframe.impl.GroupByImpl
2426
import org.jetbrains.kotlinx.dataframe.impl.anyNull
27+
import org.jetbrains.kotlinx.dataframe.impl.api.convertToDataFrame
2528
import org.jetbrains.kotlinx.dataframe.impl.asList
2629
import org.jetbrains.kotlinx.dataframe.impl.columnName
2730
import org.jetbrains.kotlinx.dataframe.impl.columns.ColumnAccessorImpl
@@ -403,6 +406,11 @@ public fun <T> DataRow<T>.toDataFrame(): DataFrame<T> = owner[index..index]
403406

404407
public fun AnyRow.toMap(): Map<String, Any?> = df().columns().associate { it.name() to it[index] }
405408

409+
public fun Map<String, Any?>.toDataRow(): DataRow<*> {
410+
val df = mapValues { listOf(it.value) }.toDataFrame()
411+
return DataRowImpl(0, df)
412+
}
413+
406414
// endregion
407415

408416
// region Array

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/DataRowTests.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import org.jetbrains.kotlinx.dataframe.api.relative
2121
import org.jetbrains.kotlinx.dataframe.api.rowMean
2222
import org.jetbrains.kotlinx.dataframe.api.rowStd
2323
import org.jetbrains.kotlinx.dataframe.api.rowSum
24+
import org.jetbrains.kotlinx.dataframe.api.toDataRow
2425
import org.jetbrains.kotlinx.dataframe.api.toDouble
2526
import org.jetbrains.kotlinx.dataframe.api.transposeTo
2627
import org.jetbrains.kotlinx.dataframe.api.update
@@ -118,4 +119,12 @@ class DataRowTests : BaseTest() {
118119
typed[1].relative(-2..2) shouldBe typed[0..3]
119120
typed[1].relative(listOf(2, -1, -3, 0)) shouldBe typed[3, 0, 1]
120121
}
122+
123+
@Test
124+
fun toDataRow() {
125+
val map = mapOf<String, Any?>("a" to 1, "b" to true)
126+
val row = map.toDataRow()
127+
row["a"] shouldBe 1
128+
row["b"] shouldBe true
129+
}
121130
}

0 commit comments

Comments
 (0)