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

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播放流媒体音乐   LWJGL中的java纹理未显示   java从父集合中删除时删除子对象   mysql希望在我的代码中添加验证,如果表不存在,它应该用java创建新表   java我可以关闭客户端的socket而不引起服务器端的EOFEException吗?   java Primefaces对话框框架咆哮和showMessageInDialog不工作   hadoop配置单元无法初始化类java。网网络接口   关键字中缺少oracle11g Java iBatis   java在RESTAPI中创建PUT和POST端点,而不创建GET端点?   java Math abs和ceil输出编译错误   java Tomcat 8.017代md5及其摘要。球棒   java SpringBean配置xml文件在IteliJ Idea中加载   java为什么在使用Powershell指定Xms和Xmx时,它们什么都不做,但通过Netbeans IDE可以正常工作?   java Drools项目构建失败,kjar打包从7.7版开始