@@ -20,8 +20,12 @@ import kotlin.reflect.KProperty
20
20
public fun <T , C > DataFrame<T>.fillNulls (cols : ColumnsSelector <T , C ?>): Update <T , C ?> =
21
21
update(cols).where { it == null }
22
22
23
- public fun <T > DataFrame<T>.fillNulls (vararg cols : String ): Update <T , Any ?> = fillNulls { cols.toColumns() }
24
- public fun <T , C > DataFrame<T>.fillNulls (vararg cols : KProperty <C >): Update <T , C ?> = fillNulls { cols.toColumns() }
23
+ public fun <T > DataFrame<T>.fillNulls (vararg cols : String ): Update <T , Any ?> =
24
+ fillNulls { cols.toColumns() }
25
+
26
+ public fun <T , C > DataFrame<T>.fillNulls (vararg cols : KProperty <C >): Update <T , C ?> =
27
+ fillNulls { cols.toColumns() }
28
+
25
29
public fun <T , C > DataFrame<T>.fillNulls (vararg cols : ColumnReference <C >): Update <T , C ?> =
26
30
fillNulls { cols.toColumns() }
27
31
@@ -38,9 +42,9 @@ internal inline val Any?.isNA: Boolean
38
42
is Double -> isNaN()
39
43
is Float -> isNaN()
40
44
is AnyRow -> allNA()
41
- is AnyFrame -> isEmpty()
42
- else -> false
43
- }
45
+ is AnyFrame -> isEmpty()
46
+ else -> false
47
+ }
44
48
45
49
internal inline val AnyCol .canHaveNaN: Boolean get() = typeClass.let { it == Double ::class || it == Float ::class }
46
50
@@ -52,22 +56,39 @@ internal inline val Float?.isNA: Boolean get() = this == null || this.isNaN()
52
56
53
57
// region fillNaNs
54
58
55
- public fun <T , C > DataFrame<T>.fillNaNs (cols : ColumnsSelector <T , C >): Update <T , C > = update(cols).where { it.isNaN }
56
- public fun <T > DataFrame<T>.fillNaNs (vararg cols : String ): Update <T , Any ?> = fillNaNs { cols.toColumns() }
57
- public fun <T , C > DataFrame<T>.fillNaNs (vararg cols : KProperty <C >): Update <T , C > = fillNaNs { cols.toColumns() }
58
- public fun <T , C > DataFrame<T>.fillNaNs (vararg cols : ColumnReference <C >): Update <T , C > = fillNaNs { cols.toColumns() }
59
+ public fun <T , C > DataFrame<T>.fillNaNs (cols : ColumnsSelector <T , C >): Update <T , C > =
60
+ update(cols).where { it.isNaN }
61
+
62
+ public fun <T > DataFrame<T>.fillNaNs (vararg cols : String ): Update <T , Any ?> =
63
+ fillNaNs { cols.toColumns() }
64
+
65
+ public fun <T , C > DataFrame<T>.fillNaNs (vararg cols : KProperty <C >): Update <T , C > =
66
+ fillNaNs { cols.toColumns() }
67
+
68
+ public fun <T , C > DataFrame<T>.fillNaNs (vararg cols : ColumnReference <C >): Update <T , C > =
69
+ fillNaNs { cols.toColumns() }
70
+
59
71
public fun <T , C > DataFrame<T>.fillNaNs (cols : Iterable <ColumnReference <C >>): Update <T , C > =
60
72
fillNaNs { cols.toColumnSet() }
61
73
62
74
// endregion
63
75
64
76
// region fillNA
65
77
66
- public fun <T , C > DataFrame<T>.fillNA (cols : ColumnsSelector <T , C ?>): Update <T , C ?> = update(cols).where { it.isNA }
67
- public fun <T > DataFrame<T>.fillNA (vararg cols : String ): Update <T , Any ?> = fillNA { cols.toColumns() }
68
- public fun <T , C > DataFrame<T>.fillNA (vararg cols : KProperty <C >): Update <T , C ?> = fillNA { cols.toColumns() }
69
- public fun <T , C > DataFrame<T>.fillNA (vararg cols : ColumnReference <C >): Update <T , C ?> = fillNA { cols.toColumns() }
70
- public fun <T , C > DataFrame<T>.fillNA (cols : Iterable <ColumnReference <C >>): Update <T , C ?> = fillNA { cols.toColumnSet() }
78
+ public fun <T , C > DataFrame<T>.fillNA (cols : ColumnsSelector <T , C ?>): Update <T , C ?> =
79
+ update(cols).where { it.isNA }
80
+
81
+ public fun <T > DataFrame<T>.fillNA (vararg cols : String ): Update <T , Any ?> =
82
+ fillNA { cols.toColumns() }
83
+
84
+ public fun <T , C > DataFrame<T>.fillNA (vararg cols : KProperty <C >): Update <T , C ?> =
85
+ fillNA { cols.toColumns() }
86
+
87
+ public fun <T , C > DataFrame<T>.fillNA (vararg cols : ColumnReference <C >): Update <T , C ?> =
88
+ fillNA { cols.toColumns() }
89
+
90
+ public fun <T , C > DataFrame<T>.fillNA (cols : Iterable <ColumnReference <C >>): Update <T , C ?> =
91
+ fillNA { cols.toColumnSet() }
71
92
72
93
// endregion
73
94
@@ -79,13 +100,24 @@ public fun <T> DataFrame<T>.dropNulls(whereAllNull: Boolean = false, selector: C
79
100
else drop { row -> cols.any { col -> col[row] == null } }
80
101
}
81
102
82
- public fun <T > DataFrame<T>.dropNulls (whereAllNull : Boolean = false): DataFrame <T > = dropNulls(whereAllNull) { all() }
83
- public fun <T > DataFrame<T>.dropNulls (vararg cols : KProperty <* >, whereAllNull : Boolean = false): DataFrame <T > = dropNulls(whereAllNull) { cols.toColumns() }
84
- public fun <T > DataFrame<T>.dropNulls (vararg cols : String , whereAllNull : Boolean = false): DataFrame <T > = dropNulls(whereAllNull) { cols.toColumns() }
85
- public fun <T > DataFrame<T>.dropNulls (vararg cols : Column , whereAllNull : Boolean = false): DataFrame <T > = dropNulls(whereAllNull) { cols.toColumns() }
86
- public fun <T > DataFrame<T>.dropNulls (cols : Iterable <Column >, whereAllNull : Boolean = false): DataFrame <T > = dropNulls(whereAllNull) { cols.toColumnSet() }
103
+ public fun <T > DataFrame<T>.dropNulls (whereAllNull : Boolean = false): DataFrame <T > =
104
+ dropNulls(whereAllNull) { all() }
105
+
106
+ public fun <T > DataFrame<T>.dropNulls (vararg cols : KProperty <* >, whereAllNull : Boolean = false): DataFrame <T > =
107
+ dropNulls(whereAllNull) { cols.toColumns() }
108
+
109
+ public fun <T > DataFrame<T>.dropNulls (vararg cols : String , whereAllNull : Boolean = false): DataFrame <T > =
110
+ dropNulls(whereAllNull) { cols.toColumns() }
111
+
112
+ public fun <T > DataFrame<T>.dropNulls (vararg cols : Column , whereAllNull : Boolean = false): DataFrame <T > =
113
+ dropNulls(whereAllNull) { cols.toColumns() }
114
+
115
+ public fun <T > DataFrame<T>.dropNulls (cols : Iterable <Column >, whereAllNull : Boolean = false): DataFrame <T > =
116
+ dropNulls(whereAllNull) { cols.toColumnSet() }
87
117
88
- public fun <T > DataColumn<T?>.dropNulls (): DataColumn <T > = (if (! hasNulls()) this else filter { it != null }) as DataColumn <T >
118
+
119
+ public fun <T > DataColumn<T?>.dropNulls (): DataColumn <T > =
120
+ (if (! hasNulls()) this else filter { it != null }) as DataColumn <T >
89
121
90
122
// endregion
91
123
@@ -98,16 +130,25 @@ public fun <T> DataFrame<T>.dropNA(whereAllNA: Boolean = false, selector: Column
98
130
else drop { cols.any { this [it].isNA } }
99
131
}
100
132
101
- public fun <T > DataFrame<T>.dropNA (vararg cols : KProperty <* >, whereAllNA : Boolean = false): DataFrame <T > = dropNA(whereAllNA) { cols.toColumns() }
102
- public fun <T > DataFrame<T>.dropNA (vararg cols : String , whereAllNA : Boolean = false): DataFrame <T > = dropNA(whereAllNA) { cols.toColumns() }
103
- public fun <T > DataFrame<T>.dropNA (vararg cols : Column , whereAllNA : Boolean = false): DataFrame <T > = dropNA(whereAllNA) { cols.toColumns() }
104
- public fun <T > DataFrame<T>.dropNA (cols : Iterable <Column >, whereAllNA : Boolean = false): DataFrame <T > = dropNA(whereAllNA) { cols.toColumnSet() }
133
+ public fun <T > DataFrame<T>.dropNA (vararg cols : KProperty <* >, whereAllNA : Boolean = false): DataFrame <T > =
134
+ dropNA(whereAllNA) { cols.toColumns() }
105
135
106
- public fun <T > DataFrame<T>.dropNA (whereAllNA : Boolean = false): DataFrame <T > = dropNA(whereAllNA) { all() }
136
+ public fun <T > DataFrame<T>.dropNA (vararg cols : String , whereAllNA : Boolean = false): DataFrame <T > =
137
+ dropNA(whereAllNA) { cols.toColumns() }
107
138
108
- public fun <T > DataColumn<T?>.dropNA (): DataColumn <T > = when (typeClass) {
109
- Double ::class , Float ::class -> filter { ! it.isNA }.cast()
110
- else -> (if (! hasNulls()) this else filter { it != null }) as DataColumn <T >
111
- }
139
+ public fun <T > DataFrame<T>.dropNA (vararg cols : Column , whereAllNA : Boolean = false): DataFrame <T > =
140
+ dropNA(whereAllNA) { cols.toColumns() }
141
+
142
+ public fun <T > DataFrame<T>.dropNA (cols : Iterable <Column >, whereAllNA : Boolean = false): DataFrame <T > =
143
+ dropNA(whereAllNA) { cols.toColumnSet() }
144
+
145
+ public fun <T > DataFrame<T>.dropNA (whereAllNA : Boolean = false): DataFrame <T > =
146
+ dropNA(whereAllNA) { all() }
147
+
148
+ public fun <T > DataColumn<T?>.dropNA (): DataColumn <T > =
149
+ when (typeClass) {
150
+ Double ::class , Float ::class -> filter { ! it.isNA }.cast()
151
+ else -> (if (! hasNulls()) this else filter { it != null }) as DataColumn <T >
152
+ }
112
153
113
154
// endregion
0 commit comments