我正在帮助一个狗救援小组分析他们的收养申请。所有申请都通过在线系统提交,每个申请都会自动生成一个表单ID。然后,这些申请将分配给不同的志愿者进行处理
大部分信息都很简单,我可以使用pandas轻松处理。部分分析是关于每个应用程序的处理时间。这意味着从申请创建之日起(表格状态为“已提交”)到狗被收养之日(表格状态为“已收养”)。当我导出表单数据时,状态会发生变化,一般注释会混合在一个名为“comments(inline)”的标题下
下面是一个简略示例,说明一个应用程序的状态更改/注释是什么样子的
正文遵循一些基本模式
一般性意见: 当前_人员(姓名)填写日期:text
志愿者的变化: 当前_人员(姓名)填写日期:将表格分配给新_人员(最后一名)
表格状态更改: 当前_人员(名字)在日期写入:状态从当前_状态更改为新_状态
我是python新手(~3mos)。首先想到的是使用python和正则表达式解析文本,提取数据,并将它们分成两组(一组用于一般注释,另一组用于状态更改)。这将需要一些时间,因为我还在学习,但它似乎是可行的。最终的结果是这样的
相同的状态可以分配多次,所以我需要给他们一个号码。然后我可以将处理时间计算为采纳-01和提交-01之间的天数
然而,从我到目前为止所了解到的情况来看,使用这种类型的迭代(for循环)似乎很慢,不推荐使用。到目前为止,我有大约1500份表格,而且数量只会增加
我是否应该继续使用python和re?还是有更好的方法来获得我所描述的?我坚信有一个更好的方法,我只是知道的还不够多
非常感谢您的建议
样本数据here in CSV file,here in XML file
您将在其中找到四个名称: 珍妮·怀特, 罗丝·伯克, 克里·詹姆斯, 亨利·伍兹
我意识到文本CSV文件并不像我想象的那样干净。注释或状态更改之间没有空格。尽管有模式,但并不总是一致的(只有名字和全名)。我更新了模式。通过导出到CSV,您将看到以下内容
亨利于2020年9月22日写道:将表格交给罗斯·伯克 Rose在2020年9月22日写道:发送了介绍电子邮件
变成
亨利于2020年9月22日撰文:分配给罗斯·伯克罗斯的表格于2020年9月22日撰文:发送介绍电子邮件
现在,我还需要更多地考虑清理数据。 谢谢你看
所以我想出了如何使用正则表达式来处理基于模式的注释
接下来的一个可以获取所有不同的日期和所有状态,因为它们都有“更改的状态来源”部分,我可以将单个组与旧状态或新状态进行匹配
如果我只关注被收养的孩子,这个孩子正好能抓住我需要的日期
另外,我不需要使用for循环。在关注采用日期的特殊情况下,我可以使用以下内容将采用日期添加到Jupyter笔记本中的数据框中
这也意味着我可以只使用原始的CSV文件
相关问题 更多 >
编程相关推荐