所以我有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