在python方面,您可以使用itertools魔术来重新排列数据:
data = [('Apple', 'Coles', 1.50), ('Apple', 'Woolworths', 1.60), ('Apple', 'IGA', 1.70), ('Banana', 'Coles', 0.50), ('Banana', 'Woolworths', 0.60), ('Banana', 'IGA', 0.70), ('Cherry', 'Coles', 5.00), ('Date', 'Coles', 2.00), ('Date', 'Woolworths', 2.10), ('Elderberry', 'IGA', 10.00)]from itertools import groupby, islicefrom operator import itemgetterfrom collections import defaultdictstores = sorted(set(row[1] for row in data))# probably splitting this up in multiple lines would be more readablepivot = ((fruit, defaultdict(lambda: None, (islice(d, 1, None) for d in data))) for fruit, data in groupby(sorted(data), itemgetter(0)))print 'Fruit'.ljust(12), 't'.join(stores)for fruit, prices in pivot: print fruit.ljust(12), 't'.join(str(prices[s]) for s in stores)
输出:
Fruit Coles IGA WoolwApple 1.5 1.7 1.6Banana 0.5 0.7 0.6Cherry 5.0 None NoneDate 2.0 None 2.1Elderberry None 10.0 None
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)