查找大量数据集的唯一索引

blizzard的Python项目详细描述


搜索电子表格

当我们搜索普通的书面文档时,我们会将单词发送到搜索中 引擎,并得到文字页回来。

如果我们可以搜索电子表格 通过将电子表格发送到搜索引擎并取回电子表格? 结果的顺序将由各种专门统计数字决定; 正如我们使用pagerank查找相关的超文本文档一样,我们可以开发 帮助我们找到相关电子表格的其他统计数据。

数据表

我想了很多关于行和列的事情。当我们在关系中定义表时 数据库,我们可以根据 基于唯一索引的名称和类型,以及行的含义。 在电子表格中,我们仍然有列名,但我们没有得到所有的信息 否则。

我将数据表定义为描述 相似的事情,每件事情都有相似的信息 (http://www.datakind.org/blog/whats-in-a-table/)。 当我们在网格中表示一个数据表时,每一行都是一个观察值 (一件事),每一列都是一个变量。 暴雪使用这个表结构来查找任意 数据表。

唯一索引

我将唯一索引定义为数据表中的列或列的组合, 每行有不同的值。

这些独特的指数告诉我们很多;它们让我们了解 表的观测单位和我们能很好地处理的其他表 与那张桌子连接或结合。所以我做了一个独特的包裹 普通csv文件中的索引。

pip3 install special_snowflake

它叫“特殊雪花”,但它需要一个更好的名字。

如果我们将iris数据集传递给它,

"Sepal.Length","Sepal.Width","Petal.Length","Petal.Width","Species"
5.1,3.5,1.4,0.2,"setosa"
4.9,3,1.4,0.2,"setosa"
4.7,3.2,1.3,0.2,"setosa"
4.6,3.1,1.5,0.2,"setosa"
...

我们没有唯一的键

>>> special_snowflake.fromcsv(open('iris.csv'))
set()

因为没有列的组合唯一地标识行。 当然,如果我们添加一个标识符列,

"Id","Sepal.Length","Sepal.Width","Petal.Length","Petal.Width","Species"
1,5.1,3.5,1.4,0.2,"setosa"
2,4.9,3,1.4,0.2,"setosa"
3,4.7,3.2,1.3,0.2,"setosa"
4,4.6,3.1,1.5,0.2,"setosa"
...

那个被退回去了。

>>> special_snowflake.fromcsv(open('iris.csv'))
{('Id',)}

举个更有趣的例子,让我们看看鸡体重。

“weight”,”Time”,”Chick”,”Diet” 42,0,”1”,”1” 51,2,”1”,”1” 59,4,”1”,”1” 64,6,”1”,”1” 76,8,”1”,”1” …

我可以阅读这个数据集的文档并告诉你 它的统计单位是什么?或者我可以 就让雪花帮我想想吧。

>>> special_snowflake.fromcsv(open('chick.csv'))
{('Time', 'Chick')}

统计单位是小鸡。也就是说,有些东西 在多只鸡身上观察到,多个观察结果如下 从每个(嗯,至少一个)小鸡身上取下。

有些电子表格的标识符不太明显。在这个 1219行33列表格,

>>> from urllib.request import urlopen
>>> url = 'http://data.iledefrance.fr/explore/dataset/liste-des-points-de-contact-du-reseau-postal-dile-de-france/download/?format=csv'
>>> fp = urlopen(url)
>>> special_snowflake.fromcsv(fp, delimiter = ';')
{('adresse', 'code_postal'),
 ('adresse', 'localite'),
 ('identifiant',),
 ('libelle_du_site',),
 ('wgs84',)}

我们找到了五把功能独特的钥匙。只要看看列名, 我滔滔不绝地说前两个是邮政地址部分的组合 后三种外观是形式标识符。 当我做正确的事情,看 data dictionary, 我也有同样的解释。

这告诉我这个数据集是关于邮政服务地点的, 每行一个位置。它也给了我一些想法 作为邮政服务地点的唯一标识符。

在单独的电子表格上运行这个有点酷,但更酷 在很多电子表格上运行。 在暴雪中,我发现电子表格 相同的唯一索引,然后我寻找这些电子表格之间的重叠。 重叠度高的电子表格可以很好地相互连接,并且 重叠度较低的电子表格可以很好地相互结合。

现在这一切都很粗糙,所以我有点惊讶 任何有趣的东西都会出来。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将jasper集成到jhipster项目中   java无法忽略lombok注释   关于tomcat日志的java问题   java@Autowired未设置字段>NullPointerException   GUI提交按钮不工作   java气泡和选择排序   java如何编写规则来匹配两个数组?   java如何找出某个字符在字符串中的第一次、第二次或第三次出现?   java通过字符串引用id   javascript在网络视图中加载在线图表   java保留web应用程序中用户更改的日志   在安卓中尝试使用Mandrill SMTP发送电子邮件时出现java错误   用java语言将a2b4c5等字符串转换为AABBCCCCC的程序是什么?   java无需TODO即可删除所有注释   java JMX MBean在应用程序部署时自动注册   java如何使用JSON解析从任何url解析数据   java@transactional注释类使用代理包装,但未创建事务   JavaFx转换和打印