Skip to content

Commit 083c902

Browse files
committed
change default flatten parent-child separator to "_"
1 parent b3b1f64 commit 083c902

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,37 +9,41 @@ import org.jetbrains.kotlinx.dataframe.columns.toColumnSet
99
import org.jetbrains.kotlinx.dataframe.impl.api.flattenImpl
1010
import kotlin.reflect.KProperty
1111

12+
public const val FLATTEN_DEFAULT_SEPARATOR: String = "_"
13+
1214
// region DataFrame
1315

1416
@Refine
1517
@Interpretable("FlattenDefault")
16-
public fun <T> DataFrame<T>.flatten(keepParentNameForColumns: Boolean = false, separator: String = "."): DataFrame<T> =
17-
flatten(keepParentNameForColumns, separator) { all() }
18+
public fun <T> DataFrame<T>.flatten(
19+
keepParentNameForColumns: Boolean = false,
20+
separator: String = FLATTEN_DEFAULT_SEPARATOR,
21+
): DataFrame<T> = flatten(keepParentNameForColumns, separator) { all() }
1822

1923
@Refine
2024
@Interpretable("Flatten0")
2125
public fun <T, C> DataFrame<T>.flatten(
2226
keepParentNameForColumns: Boolean = false,
23-
separator: String = ".",
27+
separator: String = FLATTEN_DEFAULT_SEPARATOR,
2428
columns: ColumnsSelector<T, C>,
2529
): DataFrame<T> = flattenImpl(columns, keepParentNameForColumns, separator)
2630

2731
public fun <T> DataFrame<T>.flatten(
2832
vararg columns: String,
2933
keepParentNameForColumns: Boolean = false,
30-
separator: String = ".",
34+
separator: String = FLATTEN_DEFAULT_SEPARATOR,
3135
): DataFrame<T> = flatten(keepParentNameForColumns, separator) { columns.toColumnSet() }
3236

3337
public fun <T, C> DataFrame<T>.flatten(
3438
vararg columns: ColumnReference<C>,
3539
keepParentNameForColumns: Boolean = false,
36-
separator: String = ".",
40+
separator: String = FLATTEN_DEFAULT_SEPARATOR,
3741
): DataFrame<T> = flatten(keepParentNameForColumns, separator) { columns.toColumnSet() }
3842

3943
public fun <T, C> DataFrame<T>.flatten(
4044
vararg columns: KProperty<C>,
4145
keepParentNameForColumns: Boolean = false,
42-
separator: String = ".",
46+
separator: String = FLATTEN_DEFAULT_SEPARATOR,
4347
): DataFrame<T> = flatten(keepParentNameForColumns, separator) { columns.toColumnSet() }
4448

4549
// endregion

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.jetbrains.kotlinx.dataframe.impl.api
22

33
import org.jetbrains.kotlinx.dataframe.ColumnsSelector
44
import org.jetbrains.kotlinx.dataframe.DataFrame
5+
import org.jetbrains.kotlinx.dataframe.api.FLATTEN_DEFAULT_SEPARATOR
56
import org.jetbrains.kotlinx.dataframe.api.asColumnGroup
67
import org.jetbrains.kotlinx.dataframe.api.getColumnsWithPaths
78
import org.jetbrains.kotlinx.dataframe.api.into
@@ -15,7 +16,7 @@ import org.jetbrains.kotlinx.dataframe.impl.columns.toColumnSet
1516
internal fun <T, C> DataFrame<T>.flattenImpl(
1617
columns: ColumnsSelector<T, C>,
1718
keepParentNameForColumns: Boolean = false,
18-
separator: String = ".",
19+
separator: String = FLATTEN_DEFAULT_SEPARATOR,
1920
): DataFrame<T> {
2021
val rootColumns = getColumnsWithPaths {
2122
columns.toColumnSet().filter { it.isColumnGroup() }.simplify()

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ class FlattenTests {
9898

9999
aggregate
100100
.flatten(keepParentNameForColumns = true)
101-
.columnNames() shouldBe listOf("city", "mean.age", "mean.weight", "std.age", "std.weight")
101+
.columnNames() shouldBe listOf("city", "mean_age", "mean_weight", "std_age", "std_weight")
102102

103103
aggregate
104104
.flatten(keepParentNameForColumns = true, separator = "_happy_separator_")

0 commit comments

Comments
 (0)