Jon*_*pen 2 pivot summary openrefine
我想知道是否有可能像在 python 和 R 上那样在 OpenRefine 上创建值的聚合和摘要?例子:
有30万条记录的医疗任命表 Id-patient | 年龄 | 身份证预约 | 价值
按患者汇总汇总的结果为:Id-患者| 末世| 平均值
我希望足够清楚,如果该功能适用于 Openrefine,那将有很大帮助。
答案是“是的,但是”......这是可能的,但有点复杂。让我们举个例子。
Id-patient,Age,Id-appointment,score
1,25,1-1,456
1,26,2-1,895
1,27,3-1,872
1,28,4-1,12
1,29,5-1,87
2,45,1-2,542
2,46,2-2,524
2,52,3-2,78
2,89,4-2,45
2,90,5-2,371
Run Code Online (Sandbox Code Playgroud)
为了对每个患者进行汇总计算,您必须首先将每个患者转换为记录。为此,请将“Id_patient”列移至开头并使用“blank down”(必须事先使用“Sort...”和“Reoder rows Permanent”对 id 进行排序)。
之后,您可以对每个记录的所有值执行计算,将其视为一个数组。
所有这一切都将通过截屏视频更加清晰:
演示中使用的公式为:
格雷尔:
sort(row.record.cells.Age.value)[-1]
Run Code Online (Sandbox Code Playgroud)
格雷尔:
sum(row.record.cells.score.value) / length(row.record.cells.score.value)
Run Code Online (Sandbox Code Playgroud)
Python/Jython:
def avg(l):
return sum(l, 0.0) / len(l)
return avg([x for x in row['record']['cells']['score']['value']])
Run Code Online (Sandbox Code Playgroud)
如您所见,您可以使用 Open Refine 做很多事情,尤其是使用 Pyhon/Jython。但是计算并不是它的主要目的。Open Refine 主要旨在探索、清理和丰富数据。它不是电子表格软件。您可以使用 Excel 中的数据透视表更轻松地执行相同操作。就像您可以使用 Excel 清理一些杂乱的数据一样,即使它不是最好的工具。