Ceaveat O seguinte é aplicável apenas ao d3 v3, e não ao d4v4 mais recente!
Eu tenho uma preferência pelo d3.js e, embora não seja uma substituição total do Pandas, se você passar algum tempo aprendendo seu paradigma, ele deve ser capaz de cuidar de todas as suas disputas de dados para você. (E se você quiser exibir os resultados no navegador, ele é ideal para isso.)
Exemplo. Meu arquivo CSV data.csv:
name,age,color
Mickey,65,black
Donald,58,white
Pluto,64,orange
No mesmo diretório, crie um index.htmlcontendo o seguinte:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>My D3 demo</title>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<script charset="utf-8" src="demo.js"></script>
</body>
</html>
e também um demo.jsarquivo contendo o seguinte:
d3.csv('/data.csv',
function(row) {
return {name : row.name, age : +row.age, color : row.color};
},
function(data) {
console.log(data);
var averageAge = data.reduce(function(prev, curr) {
return prev + curr.age;
}, 0) / data.length;
var ulSelection = d3.select('body').append('ul');
var valuesSelection =
ulSelection.selectAll('li').data(data).enter().append('li').text(
function(d) { return d.age; });
var totalSelection =
ulSelection.append('li').text('Average: ' + averageAge);
});
No diretório, execute python -m SimpleHTTPServer 8181e abra http: // localhost: 8181 em seu navegador para ver uma lista simples das idades e sua média.
Este exemplo simples mostra alguns recursos relevantes do d3:
- Excelente suporte para ingestão de dados online ( CSV , TSV, JSON, etc.)
- Inteligência de luta de dados incorporada
- Manipulação de DOM orientada por dados (talvez a coisa mais difícil de entender): seus dados são transformados em elementos DOM.