Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • abrenon/outillage
1 result
Show changes
Commits on Source (2)
#!/usr/bin/env -S PYTHONPATH=lib/python python3
from GEODE import tabular
from GEODE.Store import prepare
import os
import pandas
import sys
def keyOf(t):
if type(t) == tuple:
return tuple(map(lambda s: s.strip(':'), t))
else:
return t.strip(':')
def getStats(series):
columns = ['mean', 'std', 'min', '25%', '50%', '75%', 'max']
return series.describe()[columns]
def partitonStats(metric, partition):
groups = {keyOf(p[0]): p[1] for p in partition}
byGroup = {g: getStats(groups[g][metric]) for g in groups}
stats = pandas.DataFrame(byGroup).transpose()
total = [groups[g][metric].sum() for g in groups]
stats['total'] = total
cardinal = stats['total'].sum()
stats['percentage'] = [f"{round(100*t/cardinal, 2)}%" for t in total]
return stats
def measurePartition(path, key, metric, outputPath):
measures = tabular(path)
measures['count'] = 1
groups = measures.groupby(key)
stats = partitonStats(metric, measures.groupby(key))
stats.to_csv(f"{outputPath}", sep='\t')
if __name__ == '__main__':
measurePartition(*sys.argv[1:])
......@@ -25,7 +25,6 @@ instance DefaultOrdered Sizes
instance ToNamedRecord Sizes
type Result = ArticleRecord @ Sizes @ Count
--type Result = ArticleRecord @ Sizes @ Count
measureIn :: FilePath -> FilePath -> ArticleRecord -> IO ()
measureIn textRoot treeRoot article = do
......