`implode` on a `FrameColumn` gives inconsistent results
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 64/100
Direzione di ricerca
Start by reading implodeImpl, especially the ColumnKind.Frame branch mentioned in the issue, and compare its value construction with the resulting column type. Reproduce the single-group example, then check the multi-group case to see how each cell behaves. Done when implode returns values consistent with the declared type and both examples can be accessed without a ClassCastException.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
val df = dataFrameOf("key", "frames")(
1, dataFrameOf("x")(1),
1, dataFrameOf("x")(2),
)
val result = df.implode("frames")
println(result.frames.kind) // ValueColumn
println(result.frames.type()) // kotlin.collections.List<org.jetbrains.kotlinx.dataframe.DataFrame<*>>
frames is a FrameColumn. After implode it becomes a ValueColumn with type List<DataFrame<*>>, but the cell contains a DataFrame (both frames concatenated), not a List.
println(result.frames)
frames
List<DataFrame<*>>
----
0 [2 x 1]
An attempt access a value (list of dataframes) of this column throws:
val first = result.frames[0]
Exception in thread "main" java.lang.ClassCastException: class org.jetbrains.kotlinx.dataframe.impl.DataFrameImpl cannot be cast to class java.util.List (org.jetbrains.kotlinx.dataframe.impl.DataFrameImpl is in unnamed module of loader 'app'; java.util.List is in module java.base of loader 'bootstrap')
If there is more than one group (e.g. add a row 2, dataFrameOf("x")(3)), there is no exception, but each cell is a list with one concatenated frame:
val df = dataFrameOf("key", "frames")(
1, dataFrameOf("x")(1),
1, dataFrameOf("x")(2),
2, dataFrameOf("x")(3),
)
println(result.frames[0])
gives
[ x
Int
----
0 1
1 2
]
and
println(result.frames[1])
gives
[ x
Int
----
0 3
]
Expected
One of:
List<DataFrame>with the original frames:[[x=1], [x=2]](same rule as for value columns:T→List<T>);- a
FrameColumnwith one concatenated frame:[x=1, x=2].
Possible cause
In implodeImpl, for ColumnKind.Frame the value is concat() (a DataFrame), and the type is List<AnyFrame>.
- Lingua principale
- Kotlin
- Stelle
- 1.1k
- Fork
- 87
- Merge medio
- 2g 21h
- PR unite (30g)
- 40
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Kotlin/dataframe
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Add `columnOf(vararg DataFrame<T: DataRowSchema>): FrameColumn<T>` overload for compatibilityApertaAPI
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
Kotlin/dataframe#2202 · 3 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Kotlin/dataframe#2195 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
AX
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
Add minimal KDocs for `print` APIsForse già presa @zaleslaw l’ha presa 3 giorni fa. ApertaKDocs
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Kotlin/dataframe
Issue simili
-
feat: 插入提示词时默认追加到输入框,长按才替换Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
liberation-data/drivine-cypher-spec#67 ·
I maintainer di solito rispondono entro 1 giorno
-
feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
-
documentation good first issue help wanted P2 roadmap-v4
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
maziyarpanahi/openmed#5425 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
OneBusAway/vehicle-positions#250 ·
I maintainer di solito rispondono entro 1 giorno