Published
Edited
Apr 24, 2022
Insert cell
# Avalara Data Analysis
Insert cell
workbook = FileAttachment("Avalara_goods_and_services.xlsx").xlsx()
Insert cell
workbook.sheet["goods_and_services"]
Insert cell
table = Inputs.table(data, { headers: true })
Insert cell
data = workbook
.sheet("goods_and_services", { headers: true })
.slice(1706, 2547)
.map((d) => ({
code: d["A"],
title_desc: d["AvaTax System Tax Codes"]
}))
.filter((d) => d["code"] != undefined)
Insert cell
# Word Analysis
Insert cell
word_count = {
data;
return {};
}
Insert cell
add_data = {
word_count;
data.forEach((d) => {
let title_desc = d["title_desc"];
title_desc.split(" ").forEach((word) => {
if (word in word_count) {
word_count[word]["value"] += 1;
word_count[word]["children"].push(title_desc);
} else {
word_count[word] = {};
word_count[word]["value"] = 1;
word_count[word]["children"] = [];
word_count[word]["children"].push(title_desc);
}
});
});

return {};
}
Insert cell
word_count
Insert cell
word_count_heir = {
add_data;
return Object.entries(word_count)
.map((d) => {
return {
name: d[0],
value: d[1]["value"],
children: d[1].children.map((da) => {
return { name: da, value: 1 };
})
};
})
.filter((d) => d.value > 30);
}
Insert cell
word_count_heir_reduce = {
word_count_heir
return {
name: "data",
children: word_count_heir
};
}
Insert cell
// word_count_heir_reduce = word_count_heir.reduce(function (target, key, index) {
// target["name"] = {
// name: key["name"],
// children: key["children"].map((d) => {
// return {
// name: d
// };
// }),
// value: key["value"]
// };
// return target;
// }, {})
Insert cell
Object.entries(word_count).sort((a, b) => b[1] - a[1])
Insert cell
viewof sheet = Inputs.radio(workbook.sheetNames, {
value: workbook.sheetNames[0]
})
Insert cell
ch = {
word_count_heir_reduce;
return chart;
}
Insert cell
import { chart } with { word_count_heir_reduce as data } from "@d3/zoomable-treemap"
Insert cell
word_count_heir_reduce
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more