python - 数据科学家如何组织代码结构以提供最小且可重用的数据管道示例?

标签 python data-science code-organization project-organization

受数据科学项目结构模板启发如下:https://medium.com/swlh/how-to-structure-a-python-based-data-science-project-a-short-tutorial-for-beginners-7e00bff14f56我想知道你将如何改进这个结构来处理一个最小的测试示例(它不是一个单元测试,而是一种功能测试)来运行整个项目。
我可以想象我的包中有一个 main.py 模块来运行整个管道并提供数据样本,这样可以让对项目感兴趣的人快速运行它并更好地理解项目。
但是我可以把这个样本数据放在哪里(这将是大小之间的妥协,以提高运行“功能测试”的速度,保持输出显着而不是无意义)?
有人告诉我,版本控制数据不是一个好主意(事件样本),而且如果是合理的数据,我们的负责人不会很好地看到它。
由于我的公司持有具有访问权限的共享硬盘驱动器,我正在考虑将这些测试数据放在这个位置,并在我的代码中提供一个 get_data.py,它将下载项目的 data/raw 文件夹中的数据。
听起来如何?数据科学家的最佳实践是什么?

最佳答案

  • 设置好.gitignore其中您确保不要将任何数据或类似数据上传到服务器。避免上传到 repo 笔记本也很好。
  • 有关 repo 中的通用内容,请参阅 here部分:“生成的项目内容”。我会说最好有:测试,脚本,笔记本,有模块,你可以在其中放置你可以在 future 重用的很酷的功能等等。
  • 我认为放置一些假数据可能很有趣。也许有趣的是看看 Faker 来创建样本:https://pypi.org/project/Faker/
  • 将 doctest 用于测试和文档可能很好。
  • Sphinx 可能适用于文档。

  • 总的来说,我会说你将要面对的大多数情况已经被其他人所面对,所以也许尝试贡献或遵循一些好的包/库,如下所示。
  • https://github.com/scikit-learn/scikit-learn/
  • https://github.com/slundberg/shap

  • 最好检查一下那些人在做什么/做了什么。
    对于数据管道的特殊情况,它可能很复杂,因为可能涉及不同的人和不同的技术(数据库、python、R ...)。我认为总的来说,拥有良好的文档是件好事,如上所述。根据我的经验,我会尝试将所有内容放在一个地方。就像在脚本中一样。此外,我会尝试放置警告和错误,以确保您尽可能地改进管道。

    关于python - 数据科学家如何组织代码结构以提供最小且可重用的数据管道示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66060335/

    相关文章:

    python - 如何使用 Pandas 将多值行转换为列?

    .net - 使用 C++/CLI 包装非托管 C++ 类库 - 问题 1 - 项目/代码组织

    python - 具有其他列条件的新列

    linux - 在 mac 终端中过滤文件

    python - 如何覆盖 AWS Athena 表

    sql - 从prestosql中的日期列获取星期几?

    c++ - 如何在 SFML C++ 游戏中将 Assets 加载与主循环分开?

    django - 为什么 django 强制所有模型类都在 models.py 中?

    python - 使用 Python 从 MP3 音乐中提取节拍

    python - 创建一个 Numpy 矩阵,存储输入 ndarray 的打乱版本