管理,查询和拆分,组合,应用许多本地csv数据文件?可能使用数据库?

时间:2017-11-01 20:56:41

标签: python mysql matlab sqlite csv

我有一个巨大的csv文件集合,这些文件在很长一段时间内获得,我继续追加新的收购。数据文件使用以下逻辑排列。

在一个试验研究中,每批文件(约100个单独的文件)保存在一个文件夹中(至少有30个不同的试验)。 每个文件都有一个文件名,用于标识数据收集的位置和样本名称(不同类型),以及可能的制造商/日期信息。 在每个文件中,我们有许多列(~200)包含许多关于样本的属性的数据。一些列提供定性/定量信息,例如组件名称和组件级别(%)。

现在,假设我想找到包含某些组件的数据集,来自少数选定研究中的几个选定的制造商。通过遍历所有文件夹并找到那些csv文件并提取满足查询条件的数据然后将它们放入新文件中来提取这些数据将非常耗时。

我的问题是:

  1. 是否存在能够通过运行集成查询命令来简单地拆分/组合和应用操作来提取这些文件的解决方案,而无需深入研究单个文件。

  2. 我们正在考虑建立一个数据库管理系统。我认为sqlite3可能是要走的路,因为它是无服务器的DB。它或MySQL等任何其他数据库平台能让我们解决我们的问题吗?我使用MatLAB和python作为我的数据/文件处理平台。

  3. 是否有提供此类服务的商业/开源软件,我不知道?

  4. 非常感谢你。

1 个答案:

答案 0 :(得分:2)

如果你的目标是做分析&在此数据之上的数据科学,您将为其查询或创建建模功能,然后:

1)您可以在python中编写一些查询逻辑,只在需要时获取一些文件并将它们加载到pandas或转换为批量csv文件,但不会长期持续。

2)DB很可能是要走的路。您可以为每个试验或每个试验模式/结构使用不同的表或数据库。

3)SQLite3是一个不错的选择,但MySQL的社区版本可能具有更大的灵活性。即SQLite的限制:Can SQLite support multiple users?当然,对于开发,您可以在SQLite中启动,从文本文件加载所有内容,然后再迁移到MySQL之类的内容。

如果你从一开始就很好地建模过程(python - > ETL - >>>建模功能),并且你的SQL环境具有良好的结构,它应该可以在实验室中持续很长时间或工作场所。