我想在我的项目中使用 Cookiecutter 数据科学项目结构。我找到了http://drivendata.github.io/cookiecutter-data-science/ ,它看起来很棒。
我正在分析它们结构上的目录差异,并且我有一些与不同数据阶段相关的问题。在README.md
文件设置中,外部数据、临时数据、已处理数据和原始数据之间的差异。
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
我正在开展一个项目,其中数据来自传感器并通过 Web 应用程序仪表板进行管理。此外,我一直在 SQL 数据库转储上执行一些 JOINS,以便提取我需要开始使用的其他数据。
原始数据和外部数据有什么区别?我描述了上面提取过程的数据,或者我如何让它们像原始数据一样被分类?
为什么这些不被视为外部数据?
这些将被视为外部数据,我是否从与拥有传感器和 Web 应用程序仪表板数据管理的组织不同的其他来源获取它们?
关于原始数据 他们特别致力于:
永远不要编辑您的原始数据,尤其不要手动编辑,尤其不要在 Excel 中。不要覆盖您的原始数据。不要保存原始数据的多个版本。将数据(及其格式)视为不可变的。您编写的代码应将原始数据通过管道移动到最终分析
我理解这一点,这是一个最佳实践:)
为了说明我的问题,我想从我正在工作的一个数据集样本中选择一些索引:
我阅读了一些使用 SQL 连接提取的原始数据集。数据变了
然后,这些是我的原始数据:
# I read some raw dataset
data = pd.read_csv('fruit-RawData.csv')
data.head()
weight date number lat lng farmName
0 3.09 2012-07-27 07:08:58 15 57.766231 -16.762676 Totti
1 1.50 2012-07-27 07:09:01 15 57.766231 -16.762676 Totti
2 10.50 2012-07-27 07:09:02 15 57.766231 -16.762676 Totti
3 2.50 2012-07-27 07:09:04 15 57.766231 -16.762676 Totti
4 6.50 2012-07-27 07:09:06 15 57.766231 -16.762676 Totti
如果我只选择重量、日期和数字...
data = data[['weight','date','number']]
data.to_csv('fruits.csv', sep=',', header=True, index=False)
我得到:
weight date number
0 23.09 2012-07-27 07:08:58 5
1 30.50 2012-07-27 07:08:58 5
2 19.50 2012-07-27 07:08:58 5
3 25.50 2012-07-27 07:08:58 5
4 26.50 2012-07-27 07:08:58 5
这些数据子集可以被视为已转换的中间数据,还是仍然是原始数据?
我不知道这些问题是否有效。