File tree Expand file tree Collapse file tree 4 files changed +43
-37
lines changed
core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe Expand file tree Collapse file tree 4 files changed +43
-37
lines changed Original file line number Diff line number Diff line change @@ -151,3 +151,35 @@ public fun <T> DataColumn<T?>.dropNA(): DataColumn<T> =
151
151
}
152
152
153
153
// endregion
154
+
155
+ // region dropNaNs
156
+
157
+ public fun <T > DataFrame<T>.dropNaNs (whereAllNaN : Boolean = false, selector : ColumnsSelector <T , * >): DataFrame <T > {
158
+ val cols = this [selector]
159
+
160
+ return if (whereAllNaN) drop { cols.all { this [it].isNaN } }
161
+ else drop { cols.any { this [it].isNaN } }
162
+ }
163
+
164
+ public fun <T > DataFrame<T>.dropNaNs (vararg cols : KProperty <* >, whereAllNaN : Boolean = false): DataFrame <T > =
165
+ dropNaNs(whereAllNaN) { cols.toColumns() }
166
+
167
+ public fun <T > DataFrame<T>.dropNaNs (vararg cols : String , whereAllNaN : Boolean = false): DataFrame <T > =
168
+ dropNaNs(whereAllNaN) { cols.toColumns() }
169
+
170
+ public fun <T > DataFrame<T>.dropNaNs (vararg cols : AnyColumnReference , whereAllNaN : Boolean = false): DataFrame <T > =
171
+ dropNaNs(whereAllNaN) { cols.toColumns() }
172
+
173
+ public fun <T > DataFrame<T>.dropNaNs (cols : Iterable <AnyColumnReference >, whereAllNaN : Boolean = false): DataFrame <T > =
174
+ dropNaNs(whereAllNaN) { cols.toColumnSet() }
175
+
176
+ public fun <T > DataFrame<T>.dropNaNs (whereAllNaN : Boolean = false): DataFrame <T > =
177
+ dropNaNs(whereAllNaN) { all() }
178
+
179
+ public fun <T > DataColumn<T>.dropNaNs (): DataColumn <T > =
180
+ when (typeClass) {
181
+ Double ::class , Float ::class -> filter { ! it.isNaN }.cast()
182
+ else -> this
183
+ }
184
+
185
+ // endregion
Original file line number Diff line number Diff line change @@ -2,14 +2,22 @@ package org.jetbrains.kotlinx.dataframe.api
2
2
3
3
import org.jetbrains.kotlinx.dataframe.ColumnsSelector
4
4
import org.jetbrains.kotlinx.dataframe.DataFrame
5
+ import org.jetbrains.kotlinx.dataframe.columns.ColumnReference
5
6
import org.jetbrains.kotlinx.dataframe.impl.api.flattenImpl
7
+ import org.jetbrains.kotlinx.dataframe.impl.columns.toColumns
8
+ import kotlin.reflect.KProperty
6
9
7
10
// region DataFrame
8
11
9
12
public fun <T > DataFrame<T>.flatten (): DataFrame <T > = flatten { all() }
10
13
11
- public fun <T , C > DataFrame<T>.flatten (
12
- columns : ColumnsSelector <T , C >
13
- ): DataFrame <T > = flattenImpl(columns)
14
+ public fun <T , C > DataFrame<T>.flatten (columns : ColumnsSelector <T , C >): DataFrame <T > = flattenImpl(columns)
15
+
16
+ public fun <T > DataFrame<T>.flatten (vararg columns : String ): DataFrame <T > = flattenImpl { columns.toColumns() }
17
+
18
+ public fun <T , C > DataFrame<T>.flatten (vararg columns : KProperty <C >): DataFrame <T > = flattenImpl { columns.toColumns() }
19
+
20
+ public fun <T , C > DataFrame<T>.flatten (vararg columns : ColumnReference <C >): DataFrame <T > =
21
+ flattenImpl { columns.toColumns() }
14
22
15
23
// endregion
Load Diff This file was deleted.
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments