Created
July 16, 2025 10:16
-
-
Save antonarhipov/4ae863574de1e165c9c9f00a5b7174cb to your computer and use it in GitHub Desktop.
Kotlin Notebook demo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells" : [ { | |
| "cell_type" : "code", | |
| "metadata" : { | |
| "collapsed" : true, | |
| "ExecuteTime" : { | |
| "end_time" : "2025-07-16T10:13:24.886280Z", | |
| "start_time" : "2025-07-16T10:13:24.445789Z" | |
| } | |
| }, | |
| "source" : [ "val name = \"Anton\"\n", "fun greeting(name: String) = \"hello, $name\"\n", "println(greeting(name))" ], | |
| "id" : "fcbc633869037550", | |
| "outputs" : [ { | |
| "name" : "stdout", | |
| "output_type" : "stream", | |
| "text" : [ "hello, Anton\n" ] | |
| } ], | |
| "execution_count" : 1 | |
| }, { | |
| "metadata" : { }, | |
| "cell_type" : "code", | |
| "outputs" : [ ], | |
| "execution_count" : null, | |
| "source" : "", | |
| "id" : "1c56df0caf26134" | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-07-16T10:13:38.224066Z", | |
| "start_time" : "2025-07-16T10:13:30.293337Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "%use dataframe\n", "val spotify2023 = DataFrame.readCsv(\"../data/spotify-2023.csv\", delimiter = ',')\n", "spotify2023" ], | |
| "id" : "bcb97d3187d777be", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/html" : [ " <iframe onload=\"o_resize_iframe_out_1()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_1\" frameBorder=\"0\" srcdoc=\" <html>\n", " <head>\n", " <style type="text/css">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme="dark"], :root [data-jp-theme-light="false"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme="dark"], :root [data-jp-theme-light="false"]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; /* Mostly for vertical scrollbars */\n", " height: 10px; /* Mostly for horizontal scrollbars */\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " </style>\n", " </head>\n", " <body>\n", " <table class="dataframe" id="df_1392508928"></table>\n", "\n", "<p class="dataframe_description">... showing only top 20 of 953 rows</p><p class="dataframe_description">DataFrame: rowsCount = 953, columnsCount = 24</p>\n", "\n", " </body>\n", " <script>\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i < cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i < df.cols.length; i++) {\n", " if (df.cols[i].values.length > df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i < df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined && col.children.length > 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col < df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i < result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j < row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j < row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos > 0) {\n", " let j = 0\n", " for (let i = 0; j < pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i < col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 && (col.children.length > 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 && (col.children.length > 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i < result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size > 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById("df_" + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = "http://www.w3.org/2000/svg"\n", " let svg = document.createElementNS(svgNs, "svg")\n", " svg.classList.add("expanderSvg")\n", " let path = document.createElementNS(svgNs, "path")\n", " if (isExpanded) {\n", " svg.setAttribute("viewBox", "0 -2 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z")\n", " } else {\n", " svg.setAttribute("viewBox", "-2 0 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z")\n", " }\n", " path.setAttribute("fill", "currentColor")\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = ""\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " // header\n", " let header = document.createElement("thead")\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j < renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement("tr");\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i < rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement("th");\n", " th.setAttribute("colspan", cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (isLastRow)\n", " classes += " bottomBorder"\n", " if (classes.length > 0)\n", " th.setAttribute("class", classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " // body\n", " let body = document.createElement("tbody")\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row < df.nrow; row++) {\n", " let tr = document.createElement("tr");\n", " body.appendChild(tr)\n", " for (let i = 0; i < columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement("td");\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (classes.length > 0)\n", " td.setAttribute("class", classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement("p"))\n", " const childTable = document.createElement("table")\n", " childTable.className = "dataframe"\n", " childTable.id = "df_" + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement("p")\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute("style", value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i < children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement("script");\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i < attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window["kotlinQueues"] && window["kotlinQueues"]["DataFrame"];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "/*<!--*/\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: "<span title=\"track_name: String\">track_name</span>", children: [], rightAlign: false, values: ["Seven (feat. Latto) (Explicit Ver.)","LALA","vampire","Cruel Summer","WHERE SHE GOES","Sprinter","Ella Baila Sola","Columbia","fukumean","La Bebe - Remix","un x100to","Super Shy","Flowers","Daylight","As It Was","Kill Bill","Cupid - Twin Ver.","<span class=\"formatted\" title=\"What Was I Made For? [From The Motion Picture &#34;Barbie&#34;]\">What Was I Made For? [From The Motion<span class=\"structural\">...</span></span>","Classy 101","Like Crazy"] }, \n", "{ name: "<span title=\"artist(s)_name: String\">artist(s)_name</span>", children: [], rightAlign: false, values: ["Latto, Jung Kook","Myke Towers","Olivia Rodrigo","Taylor Swift","Bad Bunny","Dave, Central Cee","Eslabon Armado, Peso Pluma","Quevedo","Gunna","Peso Pluma, Yng Lvcas","Bad Bunny, Grupo Frontera","NewJeans","Miley Cyrus","David Kushner","Harry Styles","SZA","Fifty Fifty","Billie Eilish","Feid, Young Miko","Jimin"] }, \n", "{ name: "<span title=\"artist_count: Int\">artist_count</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>"] }, \n", "{ name: "<span title=\"released_year: Int\">released_year</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2019</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2022</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2022</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2023</span></span>"] }, \n", "{ name: "<span title=\"released_month: Int\">released_month</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">7</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">6</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">8</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">5</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">6</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">7</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">5</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">4</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">7</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">4</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">12</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">7</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>"] }, \n", "{ name: "<span title=\"released_day: Int\">released_day</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">14</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">23</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">30</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">23</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">18</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">16</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">7</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">15</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">17</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">17</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">7</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">12</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">14</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">31</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">8</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">24</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">13</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">31</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">24</span></span>"] }, \n", "{ name: "<span title=\"in_spotify_playlists: Int\">in_spotify_playlists</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">553</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1474</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1397</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">7858</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3133</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2186</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3090</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">714</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1096</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2953</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2876</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">422</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">12211</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3528</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">23575</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">8109</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2942</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">873</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2610</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">596</span></span>"] }, \n", "{ name: "<span title=\"in_spotify_charts: Int\">in_spotify_charts</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">147</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">48</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">113</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">100</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">50</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">91</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">50</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">43</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">83</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">44</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">40</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">55</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">115</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">98</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">130</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">77</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">77</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">104</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">40</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">68</span></span>"] }, \n", "{ name: "<span title=\"streams: String\">streams</span>", children: [], rightAlign: false, values: ["141381703","133716286","140003974","800840817","303236322","183706234","725980112","58149378","95217315","553634067","505671438","58255150","1316855716","387570742","2513188493","1163093654","496795686","30546883","335222234","363369738"] }, \n", "{ name: "<span title=\"in_apple_playlists: Int\">in_apple_playlists</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">43</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">48</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">94</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">116</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">84</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">67</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">34</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">25</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">60</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">49</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">41</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">37</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">300</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">80</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">403</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">183</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">91</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">80</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">43</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">8</span></span>"] }, \n", "{ name: "<span title=\"in_apple_charts: Int\">in_apple_charts</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">263</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">126</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">207</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">207</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">133</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">213</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">222</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">89</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">210</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">110</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">205</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">202</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">215</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">156</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">198</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">162</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">212</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">227</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">100</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">104</span></span>"] }, \n", "{ name: "<span title=\"in_deezer_playlists: Double?\">in_deezer_playlists</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">45.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">58.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">91.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">125.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">87.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">88.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">43.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">30.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">48.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">66.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">54.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">21.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">745.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">182.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">863.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">161.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">78.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">95.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">54.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">23.0</span></span>"] }, \n", "{ name: "<span title=\"in_deezer_charts: Int\">in_deezer_charts</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">10</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">14</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">14</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">12</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">15</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">17</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">13</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">13</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">11</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">13</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">12</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">5</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">58</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">24</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">46</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">12</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">6</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">24</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">14</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>"] }, \n", "{ name: "<span title=\"in_shazam_charts: Double?\">in_shazam_charts</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">826.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">382.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">949.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">548.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">425.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">946.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">418.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">194.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">953.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">339.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">251.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">168.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1021.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1281.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"null\">null</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">187.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1173.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">187.0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">29.0</span></span>"] }, \n", "{ name: "<span title=\"bpm: Int\">bpm</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">125</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">92</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">138</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">170</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">144</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">141</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">148</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">100</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">130</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">170</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">83</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">150</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">118</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">130</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">174</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">89</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">120</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">78</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">100</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">120</span></span>"] }, \n", "{ name: "<span title=\"key: String?\">key</span>", children: [], rightAlign: false, values: ["B","C#","F","A","A","C#","F","F","C#","D","F#","F","<span class=\"formatted\" title=\"\"><span class=\"null\">null</span></span>","D","F#","G#","B","<span class=\"formatted\" title=\"\"><span class=\"null\">null</span></span>","B","G"] }, \n", "{ name: "<span title=\"mode: String\">mode</span>", children: [], rightAlign: false, values: ["Major","Major","Major","Major","Minor","Major","Minor","Major","Minor","Minor","Minor","Minor","Major","Minor","Minor","Major","Minor","Major","Major","Major"] }, \n", "{ name: "<span title=\"danceability_%: Int\">danceability_%</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">80</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">71</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">51</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">55</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">65</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">92</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">67</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">67</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">85</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">81</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">57</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">78</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">71</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">51</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">52</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">64</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">78</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">44</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">86</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">63</span></span>"] }, \n", "{ name: "<span title=\"valence_%: Int\">valence_%</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">89</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">61</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">32</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">58</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">23</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">66</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">83</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">26</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">22</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">56</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">56</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">52</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">65</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">32</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">66</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">43</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">76</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">14</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">67</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">36</span></span>"] }, \n", "{ name: "<span title=\"energy_%: Int\">energy_%</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">83</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">74</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">53</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">72</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">80</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">58</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">76</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">71</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">62</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">48</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">72</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">82</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">68</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">43</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">73</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">73</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">59</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">9</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">66</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">73</span></span>"] }, \n", "{ name: "<span title=\"acousticness_%: Int\">acousticness_%</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">31</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">7</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">17</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">11</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">14</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">19</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">48</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">37</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">12</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">21</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">23</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">18</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">6</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">83</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">34</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">5</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">43</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">96</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">14</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>"] }, \n", "{ name: "<span title=\"instrumentalness_%: Int\">instrumentalness_%</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">63</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">17</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0</span></span>"] }, \n", "{ name: "<span title=\"liveness_%: Int\">liveness_%</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">8</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">10</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">31</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">11</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">11</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">8</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">8</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">11</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">28</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">8</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">27</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">15</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">9</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">31</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">16</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">34</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">10</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">12</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">36</span></span>"] }, \n", "{ name: "<span title=\"speechiness_%: Int\">speechiness_%</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">4</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">4</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">6</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">15</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">6</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">24</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">4</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">9</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">33</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">5</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">7</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">7</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">6</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">4</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">16</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">4</span></span>"] }, \n", "], id: 1392508928, rootId: 1392508928, totalRows: 953 } ) });\n", "/*-->*/\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(1392508928) });\n", "\n", "\n", " </script>\n", " </html>\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_1() {\n", " let elem = document.getElementById(\"iframe_out_1\");\n", " resize_iframe_out_1(elem);\n", " setInterval(resize_iframe_out_1, 5000, elem);\n", " }\n", " function resize_iframe_out_1(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_1392508929\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">track_name</th><th class=\"bottomBorder\" style=\"text-align:left\">artist(s)_name</th><th class=\"bottomBorder\" style=\"text-align:left\">artist_count</th><th class=\"bottomBorder\" style=\"text-align:left\">released_year</th><th class=\"bottomBorder\" style=\"text-align:left\">released_month</th><th class=\"bottomBorder\" style=\"text-align:left\">released_day</th><th class=\"bottomBorder\" style=\"text-align:left\">in_spotify_playlists</th><th class=\"bottomBorder\" style=\"text-align:left\">in_spotify_charts</th><th class=\"bottomBorder\" style=\"text-align:left\">streams</th><th class=\"bottomBorder\" style=\"text-align:left\">in_apple_playlists</th><th class=\"bottomBorder\" style=\"text-align:left\">in_apple_charts</th><th class=\"bottomBorder\" style=\"text-align:left\">in_deezer_playlists</th><th class=\"bottomBorder\" style=\"text-align:left\">in_deezer_charts</th><th class=\"bottomBorder\" style=\"text-align:left\">in_shazam_charts</th><th class=\"bottomBorder\" style=\"text-align:left\">bpm</th><th class=\"bottomBorder\" style=\"text-align:left\">key</th><th class=\"bottomBorder\" style=\"text-align:left\">mode</th><th class=\"bottomBorder\" style=\"text-align:left\">danceability_%</th><th class=\"bottomBorder\" style=\"text-align:left\">valence_%</th><th class=\"bottomBorder\" style=\"text-align:left\">energy_%</th><th class=\"bottomBorder\" style=\"text-align:left\">acousticness_%</th><th class=\"bottomBorder\" style=\"text-align:left\">instrumentalness_%</th><th class=\"bottomBorder\" style=\"text-align:left\">liveness_%</th><th class=\"bottomBorder\" style=\"text-align:left\">speechiness_%</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">Seven (feat. Latto) (Explicit Ver.)</td><td style=\"vertical-align:top\">Latto, Jung Kook</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">7</td><td style=\"vertical-align:top\">14</td><td style=\"vertical-align:top\">553</td><td style=\"vertical-align:top\">147</td><td style=\"vertical-align:top\">141381703</td><td style=\"vertical-align:top\">43</td><td style=\"vertical-align:top\">263</td><td style=\"vertical-align:top\">45.000000</td><td style=\"vertical-align:top\">10</td><td style=\"vertical-align:top\">826.000000</td><td style=\"vertical-align:top\">125</td><td style=\"vertical-align:top\">B</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">80</td><td style=\"vertical-align:top\">89</td><td style=\"vertical-align:top\">83</td><td style=\"vertical-align:top\">31</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">8</td><td style=\"vertical-align:top\">4</td></tr><tr><td style=\"vertical-align:top\">LALA</td><td style=\"vertical-align:top\">Myke Towers</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">23</td><td style=\"vertical-align:top\">1474</td><td style=\"vertical-align:top\">48</td><td style=\"vertical-align:top\">133716286</td><td style=\"vertical-align:top\">48</td><td style=\"vertical-align:top\">126</td><td style=\"vertical-align:top\">58.000000</td><td style=\"vertical-align:top\">14</td><td style=\"vertical-align:top\">382.000000</td><td style=\"vertical-align:top\">92</td><td style=\"vertical-align:top\">C#</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">71</td><td style=\"vertical-align:top\">61</td><td style=\"vertical-align:top\">74</td><td style=\"vertical-align:top\">7</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">10</td><td style=\"vertical-align:top\">4</td></tr><tr><td style=\"vertical-align:top\">vampire</td><td style=\"vertical-align:top\">Olivia Rodrigo</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">6</td><td style=\"vertical-align:top\">30</td><td style=\"vertical-align:top\">1397</td><td style=\"vertical-align:top\">113</td><td style=\"vertical-align:top\">140003974</td><td style=\"vertical-align:top\">94</td><td style=\"vertical-align:top\">207</td><td style=\"vertical-align:top\">91.000000</td><td style=\"vertical-align:top\">14</td><td style=\"vertical-align:top\">949.000000</td><td style=\"vertical-align:top\">138</td><td style=\"vertical-align:top\">F</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">51</td><td style=\"vertical-align:top\">32</td><td style=\"vertical-align:top\">53</td><td style=\"vertical-align:top\">17</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">31</td><td style=\"vertical-align:top\">6</td></tr><tr><td style=\"vertical-align:top\">Cruel Summer</td><td style=\"vertical-align:top\">Taylor Swift</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2019</td><td style=\"vertical-align:top\">8</td><td style=\"vertical-align:top\">23</td><td style=\"vertical-align:top\">7858</td><td style=\"vertical-align:top\">100</td><td style=\"vertical-align:top\">800840817</td><td style=\"vertical-align:top\">116</td><td style=\"vertical-align:top\">207</td><td style=\"vertical-align:top\">125.000000</td><td style=\"vertical-align:top\">12</td><td style=\"vertical-align:top\">548.000000</td><td style=\"vertical-align:top\">170</td><td style=\"vertical-align:top\">A</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">55</td><td style=\"vertical-align:top\">58</td><td style=\"vertical-align:top\">72</td><td style=\"vertical-align:top\">11</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">11</td><td style=\"vertical-align:top\">15</td></tr><tr><td style=\"vertical-align:top\">WHERE SHE GOES</td><td style=\"vertical-align:top\">Bad Bunny</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">18</td><td style=\"vertical-align:top\">3133</td><td style=\"vertical-align:top\">50</td><td style=\"vertical-align:top\">303236322</td><td style=\"vertical-align:top\">84</td><td style=\"vertical-align:top\">133</td><td style=\"vertical-align:top\">87.000000</td><td style=\"vertical-align:top\">15</td><td style=\"vertical-align:top\">425.000000</td><td style=\"vertical-align:top\">144</td><td style=\"vertical-align:top\">A</td><td style=\"vertical-align:top\">Minor</td><td style=\"vertical-align:top\">65</td><td style=\"vertical-align:top\">23</td><td style=\"vertical-align:top\">80</td><td style=\"vertical-align:top\">14</td><td style=\"vertical-align:top\">63</td><td style=\"vertical-align:top\">11</td><td style=\"vertical-align:top\">6</td></tr><tr><td style=\"vertical-align:top\">Sprinter</td><td style=\"vertical-align:top\">Dave, Central Cee</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">6</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2186</td><td style=\"vertical-align:top\">91</td><td style=\"vertical-align:top\">183706234</td><td style=\"vertical-align:top\">67</td><td style=\"vertical-align:top\">213</td><td style=\"vertical-align:top\">88.000000</td><td style=\"vertical-align:top\">17</td><td style=\"vertical-align:top\">946.000000</td><td style=\"vertical-align:top\">141</td><td style=\"vertical-align:top\">C#</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">92</td><td style=\"vertical-align:top\">66</td><td style=\"vertical-align:top\">58</td><td style=\"vertical-align:top\">19</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">8</td><td style=\"vertical-align:top\">24</td></tr><tr><td style=\"vertical-align:top\">Ella Baila Sola</td><td style=\"vertical-align:top\">Eslabon Armado, Peso Pluma</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">16</td><td style=\"vertical-align:top\">3090</td><td style=\"vertical-align:top\">50</td><td style=\"vertical-align:top\">725980112</td><td style=\"vertical-align:top\">34</td><td style=\"vertical-align:top\">222</td><td style=\"vertical-align:top\">43.000000</td><td style=\"vertical-align:top\">13</td><td style=\"vertical-align:top\">418.000000</td><td style=\"vertical-align:top\">148</td><td style=\"vertical-align:top\">F</td><td style=\"vertical-align:top\">Minor</td><td style=\"vertical-align:top\">67</td><td style=\"vertical-align:top\">83</td><td style=\"vertical-align:top\">76</td><td style=\"vertical-align:top\">48</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">8</td><td style=\"vertical-align:top\">3</td></tr><tr><td style=\"vertical-align:top\">Columbia</td><td style=\"vertical-align:top\">Quevedo</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">7</td><td style=\"vertical-align:top\">7</td><td style=\"vertical-align:top\">714</td><td style=\"vertical-align:top\">43</td><td style=\"vertical-align:top\">58149378</td><td style=\"vertical-align:top\">25</td><td style=\"vertical-align:top\">89</td><td style=\"vertical-align:top\">30.000000</td><td style=\"vertical-align:top\">13</td><td style=\"vertical-align:top\">194.000000</td><td style=\"vertical-align:top\">100</td><td style=\"vertical-align:top\">F</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">67</td><td style=\"vertical-align:top\">26</td><td style=\"vertical-align:top\">71</td><td style=\"vertical-align:top\">37</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">11</td><td style=\"vertical-align:top\">4</td></tr><tr><td style=\"vertical-align:top\">fukumean</td><td style=\"vertical-align:top\">Gunna</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">15</td><td style=\"vertical-align:top\">1096</td><td style=\"vertical-align:top\">83</td><td style=\"vertical-align:top\">95217315</td><td style=\"vertical-align:top\">60</td><td style=\"vertical-align:top\">210</td><td style=\"vertical-align:top\">48.000000</td><td style=\"vertical-align:top\">11</td><td style=\"vertical-align:top\">953.000000</td><td style=\"vertical-align:top\">130</td><td style=\"vertical-align:top\">C#</td><td style=\"vertical-align:top\">Minor</td><td style=\"vertical-align:top\">85</td><td style=\"vertical-align:top\">22</td><td style=\"vertical-align:top\">62</td><td style=\"vertical-align:top\">12</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">28</td><td style=\"vertical-align:top\">9</td></tr><tr><td style=\"vertical-align:top\">La Bebe - Remix</td><td style=\"vertical-align:top\">Peso Pluma, Yng Lvcas</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">17</td><td style=\"vertical-align:top\">2953</td><td style=\"vertical-align:top\">44</td><td style=\"vertical-align:top\">553634067</td><td style=\"vertical-align:top\">49</td><td style=\"vertical-align:top\">110</td><td style=\"vertical-align:top\">66.000000</td><td style=\"vertical-align:top\">13</td><td style=\"vertical-align:top\">339.000000</td><td style=\"vertical-align:top\">170</td><td style=\"vertical-align:top\">D</td><td style=\"vertical-align:top\">Minor</td><td style=\"vertical-align:top\">81</td><td style=\"vertical-align:top\">56</td><td style=\"vertical-align:top\">48</td><td style=\"vertical-align:top\">21</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">8</td><td style=\"vertical-align:top\">33</td></tr><tr><td style=\"vertical-align:top\">un x100to</td><td style=\"vertical-align:top\">Bad Bunny, Grupo Frontera</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">17</td><td style=\"vertical-align:top\">2876</td><td style=\"vertical-align:top\">40</td><td style=\"vertical-align:top\">505671438</td><td style=\"vertical-align:top\">41</td><td style=\"vertical-align:top\">205</td><td style=\"vertical-align:top\">54.000000</td><td style=\"vertical-align:top\">12</td><td style=\"vertical-align:top\">251.000000</td><td style=\"vertical-align:top\">83</td><td style=\"vertical-align:top\">F#</td><td style=\"vertical-align:top\">Minor</td><td style=\"vertical-align:top\">57</td><td style=\"vertical-align:top\">56</td><td style=\"vertical-align:top\">72</td><td style=\"vertical-align:top\">23</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">27</td><td style=\"vertical-align:top\">5</td></tr><tr><td style=\"vertical-align:top\">Super Shy</td><td style=\"vertical-align:top\">NewJeans</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">7</td><td style=\"vertical-align:top\">7</td><td style=\"vertical-align:top\">422</td><td style=\"vertical-align:top\">55</td><td style=\"vertical-align:top\">58255150</td><td style=\"vertical-align:top\">37</td><td style=\"vertical-align:top\">202</td><td style=\"vertical-align:top\">21.000000</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">168.000000</td><td style=\"vertical-align:top\">150</td><td style=\"vertical-align:top\">F</td><td style=\"vertical-align:top\">Minor</td><td style=\"vertical-align:top\">78</td><td style=\"vertical-align:top\">52</td><td style=\"vertical-align:top\">82</td><td style=\"vertical-align:top\">18</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">15</td><td style=\"vertical-align:top\">7</td></tr><tr><td style=\"vertical-align:top\">Flowers</td><td style=\"vertical-align:top\">Miley Cyrus</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">12</td><td style=\"vertical-align:top\">12211</td><td style=\"vertical-align:top\">115</td><td style=\"vertical-align:top\">1316855716</td><td style=\"vertical-align:top\">300</td><td style=\"vertical-align:top\">215</td><td style=\"vertical-align:top\">745.000000</td><td style=\"vertical-align:top\">58</td><td style=\"vertical-align:top\">1021.000000</td><td style=\"vertical-align:top\">118</td><td style=\"vertical-align:top\">null</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">71</td><td style=\"vertical-align:top\">65</td><td style=\"vertical-align:top\">68</td><td style=\"vertical-align:top\">6</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">7</td></tr><tr><td style=\"vertical-align:top\">Daylight</td><td style=\"vertical-align:top\">David Kushner</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">14</td><td style=\"vertical-align:top\">3528</td><td style=\"vertical-align:top\">98</td><td style=\"vertical-align:top\">387570742</td><td style=\"vertical-align:top\">80</td><td style=\"vertical-align:top\">156</td><td style=\"vertical-align:top\">182.000000</td><td style=\"vertical-align:top\">24</td><td style=\"vertical-align:top\">1281.000000</td><td style=\"vertical-align:top\">130</td><td style=\"vertical-align:top\">D</td><td style=\"vertical-align:top\">Minor</td><td style=\"vertical-align:top\">51</td><td style=\"vertical-align:top\">32</td><td style=\"vertical-align:top\">43</td><td style=\"vertical-align:top\">83</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">9</td><td style=\"vertical-align:top\">3</td></tr><tr><td style=\"vertical-align:top\">As It Was</td><td style=\"vertical-align:top\">Harry Styles</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2022</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">31</td><td style=\"vertical-align:top\">23575</td><td style=\"vertical-align:top\">130</td><td style=\"vertical-align:top\">2513188493</td><td style=\"vertical-align:top\">403</td><td style=\"vertical-align:top\">198</td><td style=\"vertical-align:top\">863.000000</td><td style=\"vertical-align:top\">46</td><td style=\"vertical-align:top\">null</td><td style=\"vertical-align:top\">174</td><td style=\"vertical-align:top\">F#</td><td style=\"vertical-align:top\">Minor</td><td style=\"vertical-align:top\">52</td><td style=\"vertical-align:top\">66</td><td style=\"vertical-align:top\">73</td><td style=\"vertical-align:top\">34</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">31</td><td style=\"vertical-align:top\">6</td></tr><tr><td style=\"vertical-align:top\">Kill Bill</td><td style=\"vertical-align:top\">SZA</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2022</td><td style=\"vertical-align:top\">12</td><td style=\"vertical-align:top\">8</td><td style=\"vertical-align:top\">8109</td><td style=\"vertical-align:top\">77</td><td style=\"vertical-align:top\">1163093654</td><td style=\"vertical-align:top\">183</td><td style=\"vertical-align:top\">162</td><td style=\"vertical-align:top\">161.000000</td><td style=\"vertical-align:top\">12</td><td style=\"vertical-align:top\">187.000000</td><td style=\"vertical-align:top\">89</td><td style=\"vertical-align:top\">G#</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">64</td><td style=\"vertical-align:top\">43</td><td style=\"vertical-align:top\">73</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">17</td><td style=\"vertical-align:top\">16</td><td style=\"vertical-align:top\">4</td></tr><tr><td style=\"vertical-align:top\">Cupid - Twin Ver.</td><td style=\"vertical-align:top\">Fifty Fifty</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">24</td><td style=\"vertical-align:top\">2942</td><td style=\"vertical-align:top\">77</td><td style=\"vertical-align:top\">496795686</td><td style=\"vertical-align:top\">91</td><td style=\"vertical-align:top\">212</td><td style=\"vertical-align:top\">78.000000</td><td style=\"vertical-align:top\">6</td><td style=\"vertical-align:top\">0.000000</td><td style=\"vertical-align:top\">120</td><td style=\"vertical-align:top\">B</td><td style=\"vertical-align:top\">Minor</td><td style=\"vertical-align:top\">78</td><td style=\"vertical-align:top\">76</td><td style=\"vertical-align:top\">59</td><td style=\"vertical-align:top\">43</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">34</td><td style=\"vertical-align:top\">3</td></tr><tr><td style=\"vertical-align:top\">What Was I Made For? [From The Motion<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">Billie Eilish</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">7</td><td style=\"vertical-align:top\">13</td><td style=\"vertical-align:top\">873</td><td style=\"vertical-align:top\">104</td><td style=\"vertical-align:top\">30546883</td><td style=\"vertical-align:top\">80</td><td style=\"vertical-align:top\">227</td><td style=\"vertical-align:top\">95.000000</td><td style=\"vertical-align:top\">24</td><td style=\"vertical-align:top\">1173.000000</td><td style=\"vertical-align:top\">78</td><td style=\"vertical-align:top\">null</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">44</td><td style=\"vertical-align:top\">14</td><td style=\"vertical-align:top\">9</td><td style=\"vertical-align:top\">96</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">10</td><td style=\"vertical-align:top\">3</td></tr><tr><td style=\"vertical-align:top\">Classy 101</td><td style=\"vertical-align:top\">Feid, Young Miko</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">31</td><td style=\"vertical-align:top\">2610</td><td style=\"vertical-align:top\">40</td><td style=\"vertical-align:top\">335222234</td><td style=\"vertical-align:top\">43</td><td style=\"vertical-align:top\">100</td><td style=\"vertical-align:top\">54.000000</td><td style=\"vertical-align:top\">14</td><td style=\"vertical-align:top\">187.000000</td><td style=\"vertical-align:top\">100</td><td style=\"vertical-align:top\">B</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">86</td><td style=\"vertical-align:top\">67</td><td style=\"vertical-align:top\">66</td><td style=\"vertical-align:top\">14</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">12</td><td style=\"vertical-align:top\">16</td></tr><tr><td style=\"vertical-align:top\">Like Crazy</td><td style=\"vertical-align:top\">Jimin</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2023</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">24</td><td style=\"vertical-align:top\">596</td><td style=\"vertical-align:top\">68</td><td style=\"vertical-align:top\">363369738</td><td style=\"vertical-align:top\">8</td><td style=\"vertical-align:top\">104</td><td style=\"vertical-align:top\">23.000000</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">29.000000</td><td style=\"vertical-align:top\">120</td><td style=\"vertical-align:top\">G</td><td style=\"vertical-align:top\">Major</td><td style=\"vertical-align:top\">63</td><td style=\"vertical-align:top\">36</td><td style=\"vertical-align:top\">73</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">0</td><td style=\"vertical-align:top\">36</td><td style=\"vertical-align:top\">4</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_1392508929\").style.display = \"none\";\n", " </script>\n", " </html>" ], | |
| "application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"track_name\",\"artist(s)_name\",\"artist_count\",\"released_year\",\"released_month\",\"released_day\",\"in_spotify_playlists\",\"in_spotify_charts\",\"streams\",\"in_apple_playlists\",\"in_apple_charts\",\"in_deezer_playlists\",\"in_deezer_charts\",\"in_shazam_charts\",\"bpm\",\"key\",\"mode\",\"danceability_%\",\"valence_%\",\"energy_%\",\"acousticness_%\",\"instrumentalness_%\",\"liveness_%\",\"speechiness_%\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double?\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double?\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String?\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"}],\"nrow\":953,\"ncol\":24},\"kotlin_dataframe\":[{\"track_name\":\"Seven (feat. Latto) (Explicit Ver.)\",\"artist(s)_name\":\"Latto, Jung Kook\",\"artist_count\":2,\"released_year\":2023,\"released_month\":7,\"released_day\":14,\"in_spotify_playlists\":553,\"in_spotify_charts\":147,\"streams\":\"141381703\",\"in_apple_playlists\":43,\"in_apple_charts\":263,\"in_deezer_playlists\":45.0,\"in_deezer_charts\":10,\"in_shazam_charts\":826.0,\"bpm\":125,\"key\":\"B\",\"mode\":\"Major\",\"danceability_%\":80,\"valence_%\":89,\"energy_%\":83,\"acousticness_%\":31,\"instrumentalness_%\":0,\"liveness_%\":8,\"speechiness_%\":4},{\"track_name\":\"LALA\",\"artist(s)_name\":\"Myke Towers\",\"artist_count\":1,\"released_year\":2023,\"released_month\":3,\"released_day\":23,\"in_spotify_playlists\":1474,\"in_spotify_charts\":48,\"streams\":\"133716286\",\"in_apple_playlists\":48,\"in_apple_charts\":126,\"in_deezer_playlists\":58.0,\"in_deezer_charts\":14,\"in_shazam_charts\":382.0,\"bpm\":92,\"key\":\"C#\",\"mode\":\"Major\",\"danceability_%\":71,\"valence_%\":61,\"energy_%\":74,\"acousticness_%\":7,\"instrumentalness_%\":0,\"liveness_%\":10,\"speechiness_%\":4},{\"track_name\":\"vampire\",\"artist(s)_name\":\"Olivia Rodrigo\",\"artist_count\":1,\"released_year\":2023,\"released_month\":6,\"released_day\":30,\"in_spotify_playlists\":1397,\"in_spotify_charts\":113,\"streams\":\"140003974\",\"in_apple_playlists\":94,\"in_apple_charts\":207,\"in_deezer_playlists\":91.0,\"in_deezer_charts\":14,\"in_shazam_charts\":949.0,\"bpm\":138,\"key\":\"F\",\"mode\":\"Major\",\"danceability_%\":51,\"valence_%\":32,\"energy_%\":53,\"acousticness_%\":17,\"instrumentalness_%\":0,\"liveness_%\":31,\"speechiness_%\":6},{\"track_name\":\"Cruel Summer\",\"artist(s)_name\":\"Taylor Swift\",\"artist_count\":1,\"released_year\":2019,\"released_month\":8,\"released_day\":23,\"in_spotify_playlists\":7858,\"in_spotify_charts\":100,\"streams\":\"800840817\",\"in_apple_playlists\":116,\"in_apple_charts\":207,\"in_deezer_playlists\":125.0,\"in_deezer_charts\":12,\"in_shazam_charts\":548.0,\"bpm\":170,\"key\":\"A\",\"mode\":\"Major\",\"danceability_%\":55,\"valence_%\":58,\"energy_%\":72,\"acousticness_%\":11,\"instrumentalness_%\":0,\"liveness_%\":11,\"speechiness_%\":15},{\"track_name\":\"WHERE SHE GOES\",\"artist(s)_name\":\"Bad Bunny\",\"artist_count\":1,\"released_year\":2023,\"released_month\":5,\"released_day\":18,\"in_spotify_playlists\":3133,\"in_spotify_charts\":50,\"streams\":\"303236322\",\"in_apple_playlists\":84,\"in_apple_charts\":133,\"in_deezer_playlists\":87.0,\"in_deezer_charts\":15,\"in_shazam_charts\":425.0,\"bpm\":144,\"key\":\"A\",\"mode\":\"Minor\",\"danceability_%\":65,\"valence_%\":23,\"energy_%\":80,\"acousticness_%\":14,\"instrumentalness_%\":63,\"liveness_%\":11,\"speechiness_%\":6},{\"track_name\":\"Sprinter\",\"artist(s)_name\":\"Dave, Central Cee\",\"artist_count\":2,\"released_year\":2023,\"released_month\":6,\"released_day\":1,\"in_spotify_playlists\":2186,\"in_spotify_charts\":91,\"streams\":\"183706234\",\"in_apple_playlists\":67,\"in_apple_charts\":213,\"in_deezer_playlists\":88.0,\"in_deezer_charts\":17,\"in_shazam_charts\":946.0,\"bpm\":141,\"key\":\"C#\",\"mode\":\"Major\",\"danceability_%\":92,\"valence_%\":66,\"energy_%\":58,\"acousticness_%\":19,\"instrumentalness_%\":0,\"liveness_%\":8,\"speechiness_%\":24},{\"track_name\":\"Ella Baila Sola\",\"artist(s)_name\":\"Eslabon Armado, Peso Pluma\",\"artist_count\":2,\"released_year\":2023,\"released_month\":3,\"released_day\":16,\"in_spotify_playlists\":3090,\"in_spotify_charts\":50,\"streams\":\"725980112\",\"in_apple_playlists\":34,\"in_apple_charts\":222,\"in_deezer_playlists\":43.0,\"in_deezer_charts\":13,\"in_shazam_charts\":418.0,\"bpm\":148,\"key\":\"F\",\"mode\":\"Minor\",\"danceability_%\":67,\"valence_%\":83,\"energy_%\":76,\"acousticness_%\":48,\"instrumentalness_%\":0,\"liveness_%\":8,\"speechiness_%\":3},{\"track_name\":\"Columbia\",\"artist(s)_name\":\"Quevedo\",\"artist_count\":1,\"released_year\":2023,\"released_month\":7,\"released_day\":7,\"in_spotify_playlists\":714,\"in_spotify_charts\":43,\"streams\":\"58149378\",\"in_apple_playlists\":25,\"in_apple_charts\":89,\"in_deezer_playlists\":30.0,\"in_deezer_charts\":13,\"in_shazam_charts\":194.0,\"bpm\":100,\"key\":\"F\",\"mode\":\"Major\",\"danceability_%\":67,\"valence_%\":26,\"energy_%\":71,\"acousticness_%\":37,\"instrumentalness_%\":0,\"liveness_%\":11,\"speechiness_%\":4},{\"track_name\":\"fukumean\",\"artist(s)_name\":\"Gunna\",\"artist_count\":1,\"released_year\":2023,\"released_month\":5,\"released_day\":15,\"in_spotify_playlists\":1096,\"in_spotify_charts\":83,\"streams\":\"95217315\",\"in_apple_playlists\":60,\"in_apple_charts\":210,\"in_deezer_playlists\":48.0,\"in_deezer_charts\":11,\"in_shazam_charts\":953.0,\"bpm\":130,\"key\":\"C#\",\"mode\":\"Minor\",\"danceability_%\":85,\"valence_%\":22,\"energy_%\":62,\"acousticness_%\":12,\"instrumentalness_%\":0,\"liveness_%\":28,\"speechiness_%\":9},{\"track_name\":\"La Bebe - Remix\",\"artist(s)_name\":\"Peso Pluma, Yng Lvcas\",\"artist_count\":2,\"released_year\":2023,\"released_month\":3,\"released_day\":17,\"in_spotify_playlists\":2953,\"in_spotify_charts\":44,\"streams\":\"553634067\",\"in_apple_playlists\":49,\"in_apple_charts\":110,\"in_deezer_playlists\":66.0,\"in_deezer_charts\":13,\"in_shazam_charts\":339.0,\"bpm\":170,\"key\":\"D\",\"mode\":\"Minor\",\"danceability_%\":81,\"valence_%\":56,\"energy_%\":48,\"acousticness_%\":21,\"instrumentalness_%\":0,\"liveness_%\":8,\"speechiness_%\":33},{\"track_name\":\"un x100to\",\"artist(s)_name\":\"Bad Bunny, Grupo Frontera\",\"artist_count\":2,\"released_year\":2023,\"released_month\":4,\"released_day\":17,\"in_spotify_playlists\":2876,\"in_spotify_charts\":40,\"streams\":\"505671438\",\"in_apple_playlists\":41,\"in_apple_charts\":205,\"in_deezer_playlists\":54.0,\"in_deezer_charts\":12,\"in_shazam_charts\":251.0,\"bpm\":83,\"key\":\"F#\",\"mode\":\"Minor\",\"danceability_%\":57,\"valence_%\":56,\"energy_%\":72,\"acousticness_%\":23,\"instrumentalness_%\":0,\"liveness_%\":27,\"speechiness_%\":5},{\"track_name\":\"Super Shy\",\"artist(s)_name\":\"NewJeans\",\"artist_count\":1,\"released_year\":2023,\"released_month\":7,\"released_day\":7,\"in_spotify_playlists\":422,\"in_spotify_charts\":55,\"streams\":\"58255150\",\"in_apple_playlists\":37,\"in_apple_charts\":202,\"in_deezer_playlists\":21.0,\"in_deezer_charts\":5,\"in_shazam_charts\":168.0,\"bpm\":150,\"key\":\"F\",\"mode\":\"Minor\",\"danceability_%\":78,\"valence_%\":52,\"energy_%\":82,\"acousticness_%\":18,\"instrumentalness_%\":0,\"liveness_%\":15,\"speechiness_%\":7},{\"track_name\":\"Flowers\",\"artist(s)_name\":\"Miley Cyrus\",\"artist_count\":1,\"released_year\":2023,\"released_month\":1,\"released_day\":12,\"in_spotify_playlists\":12211,\"in_spotify_charts\":115,\"streams\":\"1316855716\",\"in_apple_playlists\":300,\"in_apple_charts\":215,\"in_deezer_playlists\":745.0,\"in_deezer_charts\":58,\"in_shazam_charts\":1021.0,\"bpm\":118,\"key\":null,\"mode\":\"Major\",\"danceability_%\":71,\"valence_%\":65,\"energy_%\":68,\"acousticness_%\":6,\"instrumentalness_%\":0,\"liveness_%\":3,\"speechiness_%\":7},{\"track_name\":\"Daylight\",\"artist(s)_name\":\"David Kushner\",\"artist_count\":1,\"released_year\":2023,\"released_month\":4,\"released_day\":14,\"in_spotify_playlists\":3528,\"in_spotify_charts\":98,\"streams\":\"387570742\",\"in_apple_playlists\":80,\"in_apple_charts\":156,\"in_deezer_playlists\":182.0,\"in_deezer_charts\":24,\"in_shazam_charts\":1281.0,\"bpm\":130,\"key\":\"D\",\"mode\":\"Minor\",\"danceability_%\":51,\"valence_%\":32,\"energy_%\":43,\"acousticness_%\":83,\"instrumentalness_%\":0,\"liveness_%\":9,\"speechiness_%\":3},{\"track_name\":\"As It Was\",\"artist(s)_name\":\"Harry Styles\",\"artist_count\":1,\"released_year\":2022,\"released_month\":3,\"released_day\":31,\"in_spotify_playlists\":23575,\"in_spotify_charts\":130,\"streams\":\"2513188493\",\"in_apple_playlists\":403,\"in_apple_charts\":198,\"in_deezer_playlists\":863.0,\"in_deezer_charts\":46,\"in_shazam_charts\":null,\"bpm\":174,\"key\":\"F#\",\"mode\":\"Minor\",\"danceability_%\":52,\"valence_%\":66,\"energy_%\":73,\"acousticness_%\":34,\"instrumentalness_%\":0,\"liveness_%\":31,\"speechiness_%\":6},{\"track_name\":\"Kill Bill\",\"artist(s)_name\":\"SZA\",\"artist_count\":1,\"released_year\":2022,\"released_month\":12,\"released_day\":8,\"in_spotify_playlists\":8109,\"in_spotify_charts\":77,\"streams\":\"1163093654\",\"in_apple_playlists\":183,\"in_apple_charts\":162,\"in_deezer_playlists\":161.0,\"in_deezer_charts\":12,\"in_shazam_charts\":187.0,\"bpm\":89,\"key\":\"G#\",\"mode\":\"Major\",\"danceability_%\":64,\"valence_%\":43,\"energy_%\":73,\"acousticness_%\":5,\"instrumentalness_%\":17,\"liveness_%\":16,\"speechiness_%\":4},{\"track_name\":\"Cupid - Twin Ver.\",\"artist(s)_name\":\"Fifty Fifty\",\"artist_count\":1,\"released_year\":2023,\"released_month\":2,\"released_day\":24,\"in_spotify_playlists\":2942,\"in_spotify_charts\":77,\"streams\":\"496795686\",\"in_apple_playlists\":91,\"in_apple_charts\":212,\"in_deezer_playlists\":78.0,\"in_deezer_charts\":6,\"in_shazam_charts\":0.0,\"bpm\":120,\"key\":\"B\",\"mode\":\"Minor\",\"danceability_%\":78,\"valence_%\":76,\"energy_%\":59,\"acousticness_%\":43,\"instrumentalness_%\":0,\"liveness_%\":34,\"speechiness_%\":3},{\"track_name\":\"What Was I Made For? [From The Motion Picture \\\"Barbie\\\"]\",\"artist(s)_name\":\"Billie Eilish\",\"artist_count\":1,\"released_year\":2023,\"released_month\":7,\"released_day\":13,\"in_spotify_playlists\":873,\"in_spotify_charts\":104,\"streams\":\"30546883\",\"in_apple_playlists\":80,\"in_apple_charts\":227,\"in_deezer_playlists\":95.0,\"in_deezer_charts\":24,\"in_shazam_charts\":1173.0,\"bpm\":78,\"key\":null,\"mode\":\"Major\",\"danceability_%\":44,\"valence_%\":14,\"energy_%\":9,\"acousticness_%\":96,\"instrumentalness_%\":0,\"liveness_%\":10,\"speechiness_%\":3},{\"track_name\":\"Classy 101\",\"artist(s)_name\":\"Feid, Young Miko\",\"artist_count\":2,\"released_year\":2023,\"released_month\":3,\"released_day\":31,\"in_spotify_playlists\":2610,\"in_spotify_charts\":40,\"streams\":\"335222234\",\"in_apple_playlists\":43,\"in_apple_charts\":100,\"in_deezer_playlists\":54.0,\"in_deezer_charts\":14,\"in_shazam_charts\":187.0,\"bpm\":100,\"key\":\"B\",\"mode\":\"Major\",\"danceability_%\":86,\"valence_%\":67,\"energy_%\":66,\"acousticness_%\":14,\"instrumentalness_%\":0,\"liveness_%\":12,\"speechiness_%\":16},{\"track_name\":\"Like Crazy\",\"artist(s)_name\":\"Jimin\",\"artist_count\":1,\"released_year\":2023,\"released_month\":3,\"released_day\":24,\"in_spotify_playlists\":596,\"in_spotify_charts\":68,\"streams\":\"363369738\",\"in_apple_playlists\":8,\"in_apple_charts\":104,\"in_deezer_playlists\":23.0,\"in_deezer_charts\":2,\"in_shazam_charts\":29.0,\"bpm\":120,\"key\":\"G\",\"mode\":\"Major\",\"danceability_%\":63,\"valence_%\":36,\"energy_%\":73,\"acousticness_%\":0,\"instrumentalness_%\":0,\"liveness_%\":36,\"speechiness_%\":4}]}" | |
| }, | |
| "execution_count" : 2, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 2 | |
| }, { | |
| "metadata" : { }, | |
| "cell_type" : "markdown", | |
| "source" : "To find the top 5 popular artists, I'll analyze the dataset by grouping artists and counting their appearances, then sort by frequency.", | |
| "id" : "9cefa7ace7bc114" | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-07-16T10:14:32.359920Z", | |
| "start_time" : "2025-07-16T10:14:30.821603Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "// Count occurrences of each artist\n", "val artistCounts = spotify2023\n", " .groupBy { `artist(s)_name` }\n", " .count()\n", " .sortByDesc { it[\"count\"] }\n", " .take(5)\n", "\n", "artistCounts" ], | |
| "id" : "a259e13405c0a184", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/html" : [ " <iframe onload=\"o_resize_iframe_out_3()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_3\" frameBorder=\"0\" srcdoc=\" <html>\n", " <head>\n", " <style type="text/css">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme="dark"], :root [data-jp-theme-light="false"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme="dark"], :root [data-jp-theme-light="false"]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; /* Mostly for vertical scrollbars */\n", " height: 10px; /* Mostly for horizontal scrollbars */\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " </style>\n", " </head>\n", " <body>\n", " <table class="dataframe" id="df_1392508932"></table>\n", "\n", "<p class="dataframe_description">DataFrame: rowsCount = 5, columnsCount = 2</p>\n", "\n", " </body>\n", " <script>\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i < cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i < df.cols.length; i++) {\n", " if (df.cols[i].values.length > df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i < df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined && col.children.length > 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col < df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i < result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j < row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j < row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos > 0) {\n", " let j = 0\n", " for (let i = 0; j < pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i < col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 && (col.children.length > 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 && (col.children.length > 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i < result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size > 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById("df_" + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = "http://www.w3.org/2000/svg"\n", " let svg = document.createElementNS(svgNs, "svg")\n", " svg.classList.add("expanderSvg")\n", " let path = document.createElementNS(svgNs, "path")\n", " if (isExpanded) {\n", " svg.setAttribute("viewBox", "0 -2 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z")\n", " } else {\n", " svg.setAttribute("viewBox", "-2 0 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z")\n", " }\n", " path.setAttribute("fill", "currentColor")\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = ""\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " // header\n", " let header = document.createElement("thead")\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j < renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement("tr");\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i < rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement("th");\n", " th.setAttribute("colspan", cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (isLastRow)\n", " classes += " bottomBorder"\n", " if (classes.length > 0)\n", " th.setAttribute("class", classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " // body\n", " let body = document.createElement("tbody")\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row < df.nrow; row++) {\n", " let tr = document.createElement("tr");\n", " body.appendChild(tr)\n", " for (let i = 0; i < columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement("td");\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (classes.length > 0)\n", " td.setAttribute("class", classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement("p"))\n", " const childTable = document.createElement("table")\n", " childTable.className = "dataframe"\n", " childTable.id = "df_" + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement("p")\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute("style", value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i < children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement("script");\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i < attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window["kotlinQueues"] && window["kotlinQueues"]["DataFrame"];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "/*<!--*/\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: "<span title=\"artist(s)_name: String\">artist(s)_name</span>", children: [], rightAlign: false, values: ["Taylor Swift","The Weeknd","Bad Bunny","SZA","Harry Styles"] }, \n", "{ name: "<span title=\"count: Int\">count</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">34</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">22</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">19</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">19</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">17</span></span>"] }, \n", "], id: 1392508932, rootId: 1392508932, totalRows: 5 } ) });\n", "/*-->*/\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(1392508932) });\n", "\n", "\n", " </script>\n", " </html>\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_3() {\n", " let elem = document.getElementById(\"iframe_out_3\");\n", " resize_iframe_out_3(elem);\n", " setInterval(resize_iframe_out_3, 5000, elem);\n", " }\n", " function resize_iframe_out_3(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_1392508933\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">artist(s)_name</th><th class=\"bottomBorder\" style=\"text-align:left\">count</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">Taylor Swift</td><td style=\"vertical-align:top\">34</td></tr><tr><td style=\"vertical-align:top\">The Weeknd</td><td style=\"vertical-align:top\">22</td></tr><tr><td style=\"vertical-align:top\">Bad Bunny</td><td style=\"vertical-align:top\">19</td></tr><tr><td style=\"vertical-align:top\">SZA</td><td style=\"vertical-align:top\">19</td></tr><tr><td style=\"vertical-align:top\">Harry Styles</td><td style=\"vertical-align:top\">17</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_1392508933\").style.display = \"none\";\n", " </script>\n", " </html>" ], | |
| "application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"artist(s)_name\",\"count\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"}],\"nrow\":5,\"ncol\":2},\"kotlin_dataframe\":[{\"artist(s)_name\":\"Taylor Swift\",\"count\":34},{\"artist(s)_name\":\"The Weeknd\",\"count\":22},{\"artist(s)_name\":\"Bad Bunny\",\"count\":19},{\"artist(s)_name\":\"SZA\",\"count\":19},{\"artist(s)_name\":\"Harry Styles\",\"count\":17}]}" | |
| }, | |
| "execution_count" : 3, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 3 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-07-16T10:14:46.914989Z", | |
| "start_time" : "2025-07-16T10:14:44.424219Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "%use spring-ai-openai", | |
| "id" : "c3a569f9ce7379d5", | |
| "outputs" : [ ], | |
| "execution_count" : 4 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-07-16T10:14:52.020028Z", | |
| "start_time" : "2025-07-16T10:14:51.736283Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "val apiKey = System.getenv(\"OPENAI_API_KEY\")", | |
| "id" : "8971458917c038b0", | |
| "outputs" : [ ], | |
| "execution_count" : 5 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-07-16T10:15:06.134963Z", | |
| "start_time" : "2025-07-16T10:15:05.412663Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import org.springframework.ai.openai.api.OpenAiApi\n", "import org.springframework.ai.chat.model.ChatModel\n", "import org.springframework.ai.openai.OpenAiChatModel\n", "import org.springframework.ai.openai.OpenAiChatOptions\n", "\n", "val openAiApi = OpenAiApi.builder().apiKey(apiKey).build()\n", "\n", "val openAiOptions = OpenAiChatOptions.builder()\n", " .model(OpenAiApi.ChatModel.CHATGPT_4_O_LATEST)\n", " .temperature(0.9)\n", " .build()\n", "\n", "val openAiChat: ChatModel = OpenAiChatModel.builder()\n", " .openAiApi(openAiApi)\n", " .defaultOptions(openAiOptions)\n", " .build()" ], | |
| "id" : "616641c992943331", | |
| "outputs" : [ ], | |
| "execution_count" : 6 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-07-16T10:15:39.754276Z", | |
| "start_time" : "2025-07-16T10:15:32.377459Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "val chat = ChatClient.create(openAiChat)\n", "\n", "chat.prompt(\"suggest tabs for the bass line to play along this song: ${spotify2023.get(1)}\").call().content()" ], | |
| "id" : "cd15772fbe82491e", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ "Based on the information provided for the song \"LALA\" by Myke Towers, especially its key (C# Major), tempo (92 BPM), and overall groove (danceability 71%, energy 74%), the bass line is likely smooth, rhythmic, and supportive of a reggaeton or Latin trap beat. Below is a suggested bass tab you can play along with, matching the general harmonic content and groove of the track:\n", "\n", "🎵 Suggested Bass Tab for \"LALA\" – Myke Towers \n", "Key: C# Major \n", "Tempo: 92 BPM \n", "Tuning: Standard (E A D G)\n", "\n", "Bass Groove (4-bar loop – simple foundational pattern that you can build upon):\n", "\n", "G|---------------------------|---------------------------| \n", "D|---------------------------|---------------------------| \n", "A|--4---------4----------6--|--4---------4----------6--| \n", "E|-----2---2----2--4--------|-----2---2----2--4--------| \n", "\n", "Breakdown:\n", "\n", "- Bar 1 & 2 are repeated, focusing on the root (C# on A string, 4th fret), with passing notes to E♭ (6th fret, A string) and B (2nd fret, E string).\n", "- Adds bounce and matches the reggaeton style groove.\n", "\n", "You can also experiment with this variation, emphasizing syncopation and groove:\n", "\n", "G|-----------------------------| \n", "D|-----------------------------| \n", "A|--4-4-------6-6-4------------| \n", "E|------2-2---------4---2--4---| \n", "\n", "Feel free to adjust this pattern depending on whether you're playing along with a live band or backing track. You can also add slides, ghost notes, or syncopated rhythms that match the percussive elements of the beat.\n", "\n", "Let me know if you’d like a more advanced version or breakdown by song sections (verse, chorus, etc.)." ] | |
| }, | |
| "execution_count" : 7, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 7 | |
| }, { | |
| "metadata" : { }, | |
| "cell_type" : "code", | |
| "outputs" : [ ], | |
| "execution_count" : null, | |
| "source" : "", | |
| "id" : "87514f0716065b06" | |
| } ], | |
| "metadata" : { | |
| "kernelspec" : { | |
| "display_name" : "Kotlin", | |
| "language" : "kotlin", | |
| "name" : "kotlin" | |
| }, | |
| "language_info" : { | |
| "name" : "kotlin", | |
| "version" : "2.2.20-dev-4982", | |
| "mimetype" : "text/x-kotlin", | |
| "file_extension" : ".kt", | |
| "pygments_lexer" : "kotlin", | |
| "codemirror_mode" : "text/x-kotlin", | |
| "nbconvert_exporter" : "" | |
| } | |
| }, | |
| "nbformat" : 4, | |
| "nbformat_minor" : 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment