Skip to content

Commit 5eda0fd

Browse files
committed
added recommended kandy versions to table
1 parent 114ea71 commit 5eda0fd

File tree

1 file changed

+50
-36
lines changed

1 file changed

+50
-36
lines changed

README.md

Lines changed: 50 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Kotlin DataFrame: typesafe in-memory structured data processing for JVM
2+
23
[![JetBrains incubator project](https://jb.gg/badges/incubator.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
34
[![Kotlin component beta stability](https://img.shields.io/badge/project-beta-kotlin.svg?colorA=555555&colorB=DB3683&label=&logo=kotlin&logoColor=ffffff&logoWidth=10)](https://kotlinlang.org/docs/components-stability.html)
45
[![Kotlin](https://img.shields.io/badge/kotlin-2.0.20-blue.svg?logo=kotlin)](http://kotlinlang.org)
@@ -8,29 +9,37 @@
89
[![GitHub License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0)
910
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/Kotlin/dataframe/HEAD)
1011

11-
Kotlin DataFrame aims to reconcile Kotlin's static typing with the dynamic nature of data by utilizing both the full power of the Kotlin language and the opportunities provided by intermittent code execution in Jupyter notebooks and REPL.
12+
Kotlin DataFrame aims to reconcile Kotlin's static typing with the dynamic nature of data by utilizing both the full
13+
power of the Kotlin language and the opportunities provided by intermittent code execution in Jupyter notebooks and
14+
REPL.
1215

1316
* **Hierarchical** — represents hierarchical data structures, such as JSON or a tree of JVM objects.
1417
* **Functional** — the data processing pipeline is organized in a chain of `DataFrame` transformation operations.
15-
* **Immutable** — every operation returns a new instance of `DataFrame` reusing underlying storage wherever it's possible.
18+
* **Immutable** — every operation returns a new instance of `DataFrame` reusing underlying storage wherever it's
19+
possible.
1620
* **Readable** — data transformation operations are defined in DSL close to natural language.
1721
* **Practical** — provides simple solutions for common problems and the ability to perform complex tasks.
1822
* **Minimalistic** — simple, yet powerful data model of three column kinds.
19-
* **Interoperable** — convertable with Kotlin data classes and collections. This also means conversion to/from other libraries' data structures is usually quite straightforward!
23+
* **Interoperable** — convertable with Kotlin data classes and collections. This also means conversion to/from other
24+
libraries' data structures is usually quite straightforward!
2025
* **Generic** — can store objects of any type, not only numbers or strings.
21-
* **Typesafe** — on-the-fly [generation of extension properties](https://kotlin.github.io/dataframe/extensionpropertiesapi.html) for type safe data access with Kotlin-style care for null safety.
22-
* **Polymorphic** — type compatibility derives from column schema compatibility. You can define a function that requires a special subset of columns in a dataframe but doesn't care about other columns.
26+
* **Typesafe**
27+
on-the-fly [generation of extension properties](https://kotlin.github.io/dataframe/extensionpropertiesapi.html) for
28+
type safe data access with Kotlin-style care for null safety.
29+
* **Polymorphic** — type compatibility derives from column schema compatibility. You can define a function that requires
30+
a special subset of columns in a dataframe but doesn't care about other columns.
2331
In notebooks this works out-of-the-box. In ordinary projects this requires casting (for now).
2432

25-
Integrates with [Kotlin Notebook](https://kotlinlang.org/docs/kotlin-notebook-overview.html).
26-
Inspired by [krangl](https://github.com/holgerbrandl/krangl), Kotlin Collections and [pandas](https://pandas.pydata.org/)
33+
Integrates with [Kotlin Notebook](https://kotlinlang.org/docs/kotlin-notebook-overview.html).
34+
Inspired by [krangl](https://github.com/holgerbrandl/krangl), Kotlin Collections
35+
and [pandas](https://pandas.pydata.org/)
2736

2837
## 🚀 Quickstart
2938

3039
Looking for a fast and simple way to learn the basics?
3140
Get started in minutes with our [Quickstart Guide](https://kotlin.github.io/dataframe/quickstart.html).
3241

33-
It walks you through the core features of Kotlin DataFrame with minimal setup and clear examples
42+
It walks you through the core features of Kotlin DataFrame with minimal setup and clear examples
3443
— perfect for getting up to speed in just a few minutes.
3544

3645
[![quickstart_preview](docs/StardustDocs/images/guides/quickstart_preview.png)](https://kotlin.github.io/dataframe/quickstart.html)
@@ -66,7 +75,7 @@ Check out this [notebook with new features](examples/notebooks/feature_overviews
6675
### Kotlin Notebook
6776

6877
You can use Kotlin DataFrame in [Kotlin Notebook](https://kotlinlang.org/docs/kotlin-notebook-overview.html),
69-
or other interactive environment with [Kotlin Jupyter Kernel](https://github.com/Kotlin/kotlin-jupyter) support,
78+
or other interactive environment with [Kotlin Jupyter Kernel](https://github.com/Kotlin/kotlin-jupyter) support,
7079
such as [Datalore](https://datalore.jetbrains.com/),
7180
and [Jupyter Notebook](https://jupyter.org/).
7281

@@ -90,7 +99,7 @@ Or manually specify the version:
9099
%use dataframe($dataframe_version)
91100
```
92101

93-
Refer to the
102+
Refer to the
94103
[Get started with Kotlin DataFrame in Kotlin Notebook](https://kotlin.github.io/dataframe/gettingstartedkotlinnotebook.html)
95104
for details.
96105

@@ -115,7 +124,7 @@ repositories {
115124
Refer to the
116125
[Get started with Kotlin DataFrame on Gradle](https://kotlin.github.io/dataframe/gettingstartedgradle.html)
117126
for details.
118-
Also, check out the [custom setup page](https://kotlin.github.io/dataframe/gettingstartedgradleadvanced.html)
127+
Also, check out the [custom setup page](https://kotlin.github.io/dataframe/gettingstartedgradleadvanced.html)
119128
if you don't need some formats as dependencies,
120129
for Groovy, and for configurations specific to Android projects.
121130

@@ -129,27 +138,27 @@ See also
129138

130139
```kotlin
131140
val df = DataFrame
132-
// Read DataFrame from the CSV file.
133-
.readCsv("https://raw.githubusercontent.com/Kotlin/dataframe/master/data/jetbrains_repositories.csv")
134-
// And convert it to match the `Repositories` schema.
135-
.convertTo<Repositories>()
141+
// Read DataFrame from the CSV file.
142+
.readCsv("https://raw.githubusercontent.com/Kotlin/dataframe/master/data/jetbrains_repositories.csv")
143+
// And convert it to match the `Repositories` schema.
144+
.convertTo<Repositories>()
136145

137146
// Update the DataFrame.
138147
val reposUpdated = repos
139-
// Rename columns to CamelCase.
140-
.renameToCamelCase()
141-
// Rename "stargazersCount" column to "stars".
142-
.rename { stargazersCount }.into("stars")
143-
// Filter by the number of stars:
144-
.filter { stars > 50 }
145-
// Convert values in the "topic" column (which were `String` initially)
146-
// to the list of topics.
147-
.convert { topics }.with {
148-
val inner = it.removeSurrounding("[", "]")
148+
// Rename columns to CamelCase.
149+
.renameToCamelCase()
150+
// Rename "stargazersCount" column to "stars".
151+
.rename { stargazersCount }.into("stars")
152+
// Filter by the number of stars:
153+
.filter { stars > 50 }
154+
// Convert values in the "topic" column (which were `String` initially)
155+
// to the list of topics.
156+
.convert { topics }.with {
157+
val inner = it.removeSurrounding("[", "]")
149158
if (inner.isEmpty()) emptyList() else inner.split(',').map(String::trim)
150-
}
151-
// Add a new column with the number of topics.
152-
.add("topicCount") { topics.size }
159+
}
160+
// Add a new column with the number of topics.
161+
.add("topicCount") { topics.size }
153162

154163
// Write the updated DataFrame to a CSV file.
155164
reposUpdated.writeCsv("jetbrains_repositories_new.csv")
@@ -158,22 +167,24 @@ reposUpdated.writeCsv("jetbrains_repositories_new.csv")
158167
Explore [**more examples here**](https://kotlin.github.io/dataframe/guides-and-examples.html).
159168

160169
## Data model
170+
161171
* `DataFrame` is a list of columns with equal sizes and distinct names.
162172
* `DataColumn` is a named list of values. Can be one of three kinds:
163-
* `ValueColumn` — contains data
164-
* `ColumnGroup` — contains columns
165-
* `FrameColumn` — contains dataframes
173+
* `ValueColumn` — contains data
174+
* `ColumnGroup` — contains columns
175+
* `FrameColumn` — contains dataframes
166176

167177
## Visualizations
168178

169-
[Kandy](https://kotlin.github.io/kandy/welcome.html) plotting library provides seamless visualizations
179+
[Kandy](https://kotlin.github.io/kandy/welcome.html) plotting library provides seamless visualizations
170180
for your dataframes.
171181

172182
![kandy_preview](docs/StardustDocs/images/guides/kandy_gallery_preview.png)
173183

174184
## Kotlin, Kotlin Jupyter, Arrow, and JDK versions
175185

176-
This table shows the mapping between main library component versions and minimum supported Java versions.
186+
This table shows the mapping between main library component versions and minimum supported Java versions, along with
187+
other recommended versions.
177188

178189
| Kotlin DataFrame Version | Minimum Java Version | Kotlin Version | Kotlin Jupyter Version | Apache Arrow Version | Compiler Plugin Version | Compatible Kandy version |
179190
|--------------------------|----------------------|----------------|------------------------|----------------------|-------------------------|--------------------------|
@@ -186,12 +197,15 @@ This table shows the mapping between main library component versions and minimum
186197
| 0.13.1 | 8 | 1.9.22 | 0.12.0-139 | 15.0.0 | | |
187198
| 0.14.1 | 8 | 2.0.20 | 0.12.0-139 | 17.0.0 | | |
188199
| 0.15.0 | 8 | 2.0.20 | 0.12.0-139 | 18.1.0 | | 0.8.0 |
189-
| 1.0.0-Beta2 | 8 / 11 | 2.0.20 | 0.12.0-383 | 18.1.0 | 2.2.20-dev-3524 | 0.8.1-dev |
190-
| 1.0.0-Beta3 | 8 / 11 | 2.2.20 | 0.15.0-587 | 18.3.0 | 2.2.20 | TODO |
200+
| 1.0.0-Beta2 | 8 / 11 | 2.0.20 | 0.12.0-383 | 18.1.0 | 2.2.20-dev-3524 | 0.8.1-dev-66 |
201+
| 1.0.0-Beta3n (notebooks) | 8 / 11 | 2.2.20 | 0.15.0-587 (K1 only) | 18.3.0 | - | 0.8.1n |
202+
| 1.0.0-Beta3 | 8 / 11 | 2.2.20 | 0.15.0-587 | 18.3.0 | 2.2.20 / IDEA 2025.2+ | 0.8.1 |
191203

192204
## Code of Conduct
193205

194-
This project and the corresponding community are governed by the [JetBrains Open Source and Community Code of Conduct](https://confluence.jetbrains.com/display/ALL/JetBrains+Open+Source+and+Community+Code+of+Conduct). Please make sure you read it.
206+
This project and the corresponding community are governed by
207+
the [JetBrains Open Source and Community Code of Conduct](https://confluence.jetbrains.com/display/ALL/JetBrains+Open+Source+and+Community+Code+of+Conduct).
208+
Please make sure you read it.
195209

196210
## License
197211

0 commit comments

Comments
 (0)