我有来自旅游日记的数据,这些数据是从csv文件中读入的。我把它当作一本有一大堆单子的字典。E、 g.:
print diary['ID'][1] gives 123456789
print diary['TravelReferenceDay'][1] gives 1 for a Monday
我想根据日期从数组中随机选择一个ID,例如:
^{pr2}$我可以在csv文件中按TravelReferenceDay排列数据。我尝试过groupby方法来拆分数组:
groups = []
uniquekeys = []
for k, g in groupby(diary, diary['TravelReferenceDay']):
groups.append(list(g)) # Store group iterator as a list
uniquekeys.append(k)
但这就产生了一个错误:
TypeError: 'list' object is not callable
你能提出一个实现这个目标的方法吗?谢谢。在
groupby
的第二个参数是一个可调用参数,它在iterable第一个参数的连续项上调用。在您要使用
operator.itemgetter('TravelReferenceDay')
:这相当于
lambda x: x['TravelReferenceDay']
。在请注意,
groupby
期望iterable已经按键排序;组包含具有相同键的相邻项。在好的,这不起作用,因为您已经将数据存储为并行数组。为了便于处理,我建议将其转换为dicts列表:
^{pr2}$我的解决方案包括:
相关问题 更多 >
编程相关推荐