所以我有2个列表第一个来自我的数据集并包含格式为'yyyy-mm-dd hh:mm'的日期时间,名为times
。例如:在Python中列表交集和部分字符串匹配
'2010-01-01 00:00', '2010-01-01 00:15', '2010-01-01 00:30', ...,
另一种是所有特殊的一年一个月组合,命名为year_and_month
的列表。例如:
'2010-01', '2010-02', '2010-03', '2010-04',
所以我尝试提取原始数据集中年份组合的所有索引。我这样做,用最糟糕的方式(在蟒蛇新),即
each_member_indices = []
for i in range(len(year_and_month)):
item_ind = []
for j in range(times.shape[0]):
if year_and_month[i] in times[j]:
item_ind.append(j)
each_member_indices.append(item_ind)
现在,这是用了那么多的时间来工作核弹。因此,我希望优化它一下,因此我一直在寻找在一些实施方式中,如 Find intersection of two lists?和Python: Intersection of full string from list with partial string问题在于
res_1 = [val for val in year_and_month if val in times]
产生空列表,而
res_1 = [val for val in year_and_month if val in times[0]]
产生所述第一构件至少。
有什么想法?
编辑:
我只需要从名为times
相应的year_and_month
名单的唯一年月对原始数据集的元素的索引。因此,作为要求的样本输出将
[[0, 1, 2, 3,...],[925, 926, ...],...]
第一子列表包含了对2010年一月的指数,第二次为2010年二月等等。
你能为你的输入显示一个想要的输出样本吗? –
你是对的!正当我在看解决方案时,我发现我通过for循环获得了我想要的内容,但列表理解却没有达到同样的目的。为了回答你的问题,ima得到一个列表,即'each_member_indices',它是'[[0,1,2,..],[924,925,...],...]'每个对应于唯一年份的子列表例如,第一个子列表是2010年1月期间的所有指数。 – Kots