我有接下来10天的一些数据。
[{'cover_image': 'TODO - s3 link', 'epoch': 1497403800000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497490200000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497576600000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497663000000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497749400000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497835800000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497922200000},
{'cover_image': 'TODO - s3 link', 'epoch': 1498008600000},
{'cover_image': 'TODO - s3 link', 'epoch': 1498095000000},
{'cover_image': 'TODO - s3 link', 'epoch': 1498181400000}]
使用周数,我想将数据分组为本周
和下周
。
我需要像这样的东西,
{
'24': [# list of items for this week],
'25': [# list of items for next week]
}
# i.e.
{'24': [{'cover_image': 'TODO - s3 link', 'epoch': 1497403800000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497490200000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497576600000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497663000000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497749400000}],
'25': [{'cover_image': 'TODO - s3 link', 'epoch': 1497835800000},
{'cover_image': 'TODO - s3 link', 'epoch': 1497922200000},
{'cover_image': 'TODO - s3 link', 'epoch': 1498008600000},
{'cover_image': 'TODO - s3 link', 'epoch': 1498095000000},
{'cover_image': 'TODO - s3 link', 'epoch': 1498181400000}]
}
使用 pandas
库,我尝试进行如下操作
In [89]: df = pandas.DataFrame(data)
In [90]: df.index = pandas.to_datetime(df['epoch'], unit='ms')
In [103]: df['label'] = df.index.week
In [104]: df
Out[104]:
cover_image epoch label
epoch
2017-06-14 01:30:00 TODO - s3 link 1497403800000 24
2017-06-15 01:30:00 TODO - s3 link 1497490200000 24
2017-06-16 01:30:00 TODO - s3 link 1497576600000 24
2017-06-17 01:30:00 TODO - s3 link 1497663000000 24
2017-06-18 01:30:00 TODO - s3 link 1497749400000 24
2017-06-19 01:30:00 TODO - s3 link 1497835800000 25
2017-06-20 01:30:00 TODO - s3 link 1497922200000 25
2017-06-21 01:30:00 TODO - s3 link 1498008600000 25
2017-06-22 01:30:00 TODO - s3 link 1498095000000 25
2017-06-23 01:30:00 TODO - s3 link 1498181400000 25
In [106]: df.groupby('label').groups
Out[106]:
{24: DatetimeIndex(['2017-06-14 01:30:00', '2017-06-15 01:30:00',
'2017-06-16 01:30:00', '2017-06-17 01:30:00',
'2017-06-18 01:30:00'],
dtype='datetime64[ns]', name=u'epoch', freq=None),
25: DatetimeIndex(['2017-06-19 01:30:00', '2017-06-20 01:30:00',
'2017-06-21 01:30:00', '2017-06-22 01:30:00',
'2017-06-23 01:30:00'],
dtype='datetime64[ns]', name=u'epoch', freq=None)}
由于我对 pandas
的了解有限,所以无法深入了解。
如果能将周数键更改为 this_week、next_week 和 future,那就太棒了。
请帮忙解决问题。
groups
-组名 -> 组标签(索引值)
。 - jezrael