Skip to content

Commit c16d103

Browse files
committed
Add DataFrame.read{columns} operation
1 parent 82b5fd6 commit c16d103

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package org.jetbrains.kotlinx.dataframe.api
33
import org.jetbrains.kotlinx.dataframe.AnyBaseColumn
44
import org.jetbrains.kotlinx.dataframe.AnyCol
55
import org.jetbrains.kotlinx.dataframe.AnyFrame
6+
import org.jetbrains.kotlinx.dataframe.Column
7+
import org.jetbrains.kotlinx.dataframe.ColumnsSelector
68
import org.jetbrains.kotlinx.dataframe.DataColumn
79
import org.jetbrains.kotlinx.dataframe.DataFrame
810
import org.jetbrains.kotlinx.dataframe.DataRow
@@ -14,6 +16,7 @@ import org.jetbrains.kotlinx.dataframe.impl.api.mapNotNullValues
1416
import org.jetbrains.kotlinx.dataframe.impl.asList
1517
import org.jetbrains.kotlinx.dataframe.impl.columnName
1618
import org.jetbrains.kotlinx.dataframe.impl.columns.guessColumnType
19+
import org.jetbrains.kotlinx.dataframe.impl.columns.toColumns
1720
import org.jetbrains.kotlinx.dataframe.index
1821
import org.jetbrains.kotlinx.dataframe.io.read
1922
import org.jetbrains.kotlinx.dataframe.typeClass
@@ -47,6 +50,11 @@ public inline fun <reified T> DataColumn<T>.read(): AnyCol = when (kind()) {
4750
}
4851
}
4952

53+
public fun <T> DataFrame<T>.read(columns: ColumnsSelector<T, *>): DataFrame<T> = replace(columns).with { it.read() }
54+
public fun <T> DataFrame<T>.read(vararg columns: String): DataFrame<T> = read { columns.toColumns() }
55+
public fun <T> DataFrame<T>.read(vararg columns: KProperty<*>): DataFrame<T> = read { columns.toColumns() }
56+
public fun <T> DataFrame<T>.read(vararg columns: Column): DataFrame<T> = read { columns.toColumns() }
57+
5058
@JvmName("toDataFrameT")
5159
public fun <T> Iterable<DataRow<T>>.toDataFrame(): DataFrame<T> {
5260
var uniqueDf: DataFrame<T>? = null

0 commit comments

Comments
 (0)