例如,具有以下形式的子元素的列表:['mm,dd,yyyy,hh,mm' 'value']:
A = [
['09,02,2011,09,34' 'apple'],
['09,05,2011,10,20' 'juice'],
['06,04,2012,09,38' 'juice'],
['06,04,2012,09,38' 'juice'],
['06,04,2012,09,40' 'apple'],
['06,04,2012,09,40' 'juice'],
['06,04,2012,09,42' 'green'],
['06,04,2012,23,08' 'juice'],
['06,04,2012,23,10' 'juice'],
['06,04,2012,23,10' 'ferrari'],
['07,03,2012,20,12' 'juice'],
['07,07,2012,21,03' 'people'],
['07,07,2012,21,04' 'juice'],
['07,07,2012,21,04' 'people'],
['07,07,2012,21,04' 'lime'],
['08,16,2012,08,55' 'juice'],
['08,16,2012,08,55' 'juice'],
['08,16,2012,08,55' 'lime'],
['08,16,2012,08,55' 'lime'],
['08,16,2012,08,56' 'juice'],
['08,16,2012,08,57' 'juice'],
['08,16,2012,08,57' 'andy'],
['01,16,2013,03,20' 'people'],
['02,10,2013,04,59' 'lime']
]
我正在寻找一种可靠的聚合策略,允许使用月份(1-12)和年份(max_year 到 min_year)和每月天数(0-30)来聚合值。更准确地说,对于列表子元素中的每个值:
所以,如果聚合类型是年,那么:
out = [
{
'name': 'value1_name',
'series': [['min_year', 'count']...['max_year', 'count']]
},
{
'name': 'value2_name',
'series':[['min_year', 'count']...['max_year', 'count']]
}, ...
]
如果聚合类型是月份,则:
out = [
{
'name': 'value1_name',
'series': [['01', 'count']...['12', 'count']]
},
{
'name': 'value2_name',
'series':[['02', 'count']...['12', 'count']]
}, ...
]
如果聚合类型以天数形式提供,则:
out = [
{
'name': 'value1_name',
'series': [['01', 'count']...['30', 'count']]
},
{
'name': 'value2_name',
'series':[['01', 'count']...['30', 'count']]
}, ...
]
对我来说,这个问题的全部痛苦是填补各个聚合类型的月、日或年值。因此,例如,如果聚合类型是年份,并且我正在聚合所有“果汁”值,那么:
out = [
{
'name': 'juice',
'series': [['2011', '1'],['2012', '11'],['2013', '0']]
},..
同样是月份和日期值的问题。关键是所有值('apple'、'juice' 等)都应该有长度相等的系列,这意味着如果 2011 年和 2013 年不存在“法拉利”,那么它的系列应该有 ['2011' , '0'] 和 ['2013', '0']。同样,如果“ferrari”在除了 6 月(“06”)之外的任何月份都不存在,那么它的系列应该是这样的:
'series': [
['01', '0'],
['02', '0'],
['03', '0'],
['04', '0'],
['05', '0'],
['06', '1'],
['07', '0'],
['08', '0'],
['09', '0'],
['10', '0'],
['11', '0'],
['12', '0']
]
..同样是几天的情况..
我在这里可以采取的最佳策略是什么?非常感谢。