在Python数据科学应用程序中抽象通用工作流处理的最佳实践是什么?

在Python数据科学应用程序中抽象通用工作流处理的最佳实践是什么?,python,pandas,Python,Pandas,我们有许多Python Pandas数据科学应用程序在工作,它们遵循非常定型的工作流: 检索一些数据 执行一些常见的处理 执行一些专门的处理 根据以前的处理检索更多数据 [以上更多内容…] 上述所有步骤都在执行熊猫数据帧的一些创建、操作等。专门的处理步骤通常是不同的,但工作流的大部分在不同的应用程序中是相同的 我想找出这些工作流的常见部分,结果是一个应用程序可以支持可配置的工作流步骤 通常,我会使用标准的面向对象编程技术和软件模式来处理这个问题。例如,我可以将各种工作流步骤表示为对象,并通过这些

我们有许多Python Pandas数据科学应用程序在工作,它们遵循非常定型的工作流:

  • 检索一些数据
  • 执行一些常见的处理
  • 执行一些专门的处理
  • 根据以前的处理检索更多数据
  • [以上更多内容…]
  • 上述所有步骤都在执行熊猫数据帧的一些创建、操作等。专门的处理步骤通常是不同的,但工作流的大部分在不同的应用程序中是相同的

    我想找出这些工作流的常见部分,结果是一个应用程序可以支持可配置的工作流步骤

    通常,我会使用标准的面向对象编程技术和软件模式来处理这个问题。例如,我可以将各种工作流步骤表示为对象,并通过这些对象的列表(类似于责任链或倒置的访问者模式)遍历Pandas数据帧状态

    但是这些应用程序是由数据科学家开发和使用的,而不是软件工程师。他们需要能够在工作流的每个阶段检查数据,而iPython是他们所能处理的全部。不幸的是,在iPython中使用iPython来“调试”即使是非常简单的面向对象程序也被证明太麻烦了


    我在互联网上搜索过,但没有找到任何合理的解决方案来解决这个或类似的问题。处理这种情况的最佳做法是什么?

    你说的ipython是什么意思?Jupyter笔记本电脑?我看不到在工作流的每个阶段都能检查数据与OO重构之间存在任何内在的不兼容。@juanpa.arrivillaga:IPython=交互式Python,而不是Jupyter笔记本电脑。@ChristopherLewis是对的,但这些术语有时是同义词,这就是我要求澄清的原因。那么,数据科学家只对某种形式的REPL感到满意的问题是什么呢?IOW:还有什么选择,像PyCharm这样的IDE?@ChristopherLewis我删除了我最后的评论,但实际上我支持它。我不认为一个“数据科学家”(这是我的头衔,但我被分为一组问题,作为一个头衔它是可变的)只能在软件设计的一小部分中操作是可以接受的。我可以在与我们的系统集成的REPL中拼凑出一个完整的堆栈解决方案,然后传递给软件工程师进行生产。我认为软件工程师的内部培训会很有用。如果说这能让他们更有就业能力的话,那么他们不应该反对。你说的ipython是什么意思?Jupyter笔记本电脑?我看不到在工作流的每个阶段都能检查数据与OO重构之间存在任何内在的不兼容。@juanpa.arrivillaga:IPython=交互式Python,而不是Jupyter笔记本电脑。@ChristopherLewis是对的,但这些术语有时是同义词,这就是我要求澄清的原因。那么,数据科学家只对某种形式的REPL感到满意的问题是什么呢?IOW:还有什么选择,像PyCharm这样的IDE?@ChristopherLewis我删除了我最后的评论,但实际上我支持它。我不认为一个“数据科学家”(这是我的头衔,但我被分为一组问题,作为一个头衔它是可变的)只能在软件设计的一小部分中操作是可以接受的。我可以在与我们的系统集成的REPL中拼凑出一个完整的堆栈解决方案,然后传递给软件工程师进行生产。我认为软件工程师的内部培训会很有用。如果说这能让他们更有就业能力的话,那么他们不应该反对。