刚刚上研,通过实验拿到一堆数据,之前并没有数据处理的背景。对于做科研的话,请问大家是用什么工具来管理自己的数据的呢?

另外,需要方便用Python等数据分析工具来调用,希望大家帮忙出出招。


先吐槽一下问题,这个问题问了等于没有问。脱离数据本身的来源、描述对象、变数数量、变数值的结构等数据本身的特征讨论储存数据的工具等于刷流氓。

首先,对于Python来说,储存任何常见(甚至不常见)格式都是可以调用的,如果数据量大到数据储存会影响Python调用,那么问题不仅仅是对于Python,而是这个数据本身就比较难对付,往往需要大数据工程的专业方案。

Python调用各种资料库和文件的包主要是:

  • 原生的open函数:调用文本格式数据。
  • csv(https://docs.python.org/3/library/csv.html):调用CSV格式数据。
  • json(https://docs.python.org/3/library/json.html):调用json格式数据。
  • SQL:可以调用自带的sqlite3(sqlite3 - DB-API 2.0 interface for SQLite databases - Python 3.7.2rc1 documentation),可以调用MySQL(MySQLdb Users Guide),还有其他多种SQL资料库及很多类似的包。
  • pymongo(PyMongo 3.7.2 Documentation):调用MongoDB数据。

完整的Python调用资料库的说明详见:DatabaseInterfaces - Python Wiki。

此外,Pandas也提供了非常丰富的工具调用各种结构化数据并转化成DataFrame,推荐优先选择,详细说明详见:IO Tools (Text, CSV, HDF5, …)。

从数据本身,大概可以分为文本和资料库两种储存格式;从数据结构分,大概可以分为结构化和非结构化两种数据。大概可以分为四类储存方案:

  • 结构化数据、文本储存,主要是TXT、CSV、Excel(xlsx格式)。
  • 结构化数据、资料库储存,主要是各种SQL资料库,比如MySQL等等。
  • 非结构化数据、文本储存,主要是TXT、JSON等。
  • 非结构化数据、资料库储存,主要是MongoDB等No-SQL资料库,详细介绍可以看上面的资料库清单。

如果题主有进一步关于数据结构的描述,本答案会就具体格式继续讨论。


TXT、Excel和MySQL一般就够用了。


一堆是多少……数据是什么类型……你说的"管理"是想管理什么……你留著是想用来做哪方面的研究?

若干GB的数据不确定干嘛txt/csv存著,目录分项目整理整理清楚也挺好的;

数十上百GB,平时又需要查询什么的,那存个关系资料库里也挺好也通用;

若干T的,那一般是专门一个项目的数据,大多单用一块硬碟,高价值的做个备份;

再往上的数据,那一般也不用你来保存吧,这么大量的数据,企业可能分散式存著,你要什么和管理人提需求满足你;

明确研究方向的,自然会接触专有格式比如二进位之类的;有特殊需求的,可能图资料库之类专有工具……

我觉得大概率你是想多了,这不是什么研究重点,导师特殊要求自然会告诉你的,放轻松。电脑里文件夹目录层级分分好,多个备份的心眼,就挺好的。


我觉得首先不要期望所有的数据都是一个格式的,比如txt或者csv,应该面向项目面向项目工具来使用,比如Python的notebook,MATLAB的mat。

然后数据一定要和项目放在一起,方便自己管理,那这样其实转换成项目怎么管理的问题,项目or实验参考放哪里,电子教材放哪里等等。对于pdf论文,endnote,mendeley等都不错。

此外还有大文件小文件分离,以及云盘备份。不管你用不用云盘,项目的核心文档,也不过十几M,再附加一个demo video,也才百来M吧,而使用到的数据或者产生的中间结果(对于mat这种非压缩格式你懂)动辄几百M或者几个G,这可能就是「大数据」时代吧。如果有心可以给所有项目产生的大容量数据划个新文件夹称作「LargeData」或「大于1G的数据」等等。分离小文件一是方便云盘备份,二是你需要展示拷贝小文件就可以了。

然后就是目录管理,这个。。。想吐槽的多了,比如Windows用户很喜欢划3到4的盘。。。再议。。。

接上面,搜索和索引。如果你目录管理做得很好,打开资源管理器一个一个点进去都是可以的,现在Windows 10个「最近窗口」功能,贼好用,关掉的窗口会记住,方便下次打开。但是很多时候你懒或者受不了了想快一点,那直接win q快捷键就好了,或者用第三方的Everything。对,这个也基于自己的命名习惯。我自己习惯也不好,有时候-分词有时候空格,有时候中文命名有时候英文。

但不管怎样,保证怎么样去找,文件都能找到,而且要越快越好。

总结来说,数据是给实验用的,不大会方便你管理。比如实验要用protobuf,你也不会用txt存二进位数据对吧。以及数据其实也是文件组成,怎么管理好这些文件。再就是数据冗余,都是劳动的成果啊QwQ。能够完善自己这一套,达到自己的要求,比如这个数据我备份了几份,都存在哪儿,我的核心文档都写的怎么样了,那些数据最近经常用,加一个快捷方式,又有哪些数据我已经用完项目结题,那么可以压缩归档了。这也是一个动态过程,而且每个人使用习惯也不同,慢慢学习吧。


Excel就很好,自己就有大量的分析功能,Python编程的支持也多。


资料库 mysql


楼主是学生,那么我认为优先用文本数据格式,文本这个东西很方便存储和发送。csv就很好,存储前自己调试下,保证csv格式能满足你今后的调用即可。保存后记得多备份几个副本,防止丢失和误操作。


#是也乎#

╮(╯▽╰)╭

linux


mysql,mangodb,redis,推荐redis


用sas吧,以前我也觉得python好,现在发现如果只是做数据分析,不做机器学习,sas非常强,随便说下,我们公司用sas。感觉不错。


推荐阅读:
相关文章