Учитывая DataFrame, который выглядит так:
contractID
Date
1982-09-16 (SPZ1982, 1982-12-16 00:00:00)
1982-09-17 (SPZ1982, 1982-12-16 00:00:00)
1982-09-20 (SPZ1982, 1982-12-16 00:00:00)
...
2018-09-27 (SPZ2018, 2018-12-21 00:00:00)
2018-09-28 (SPZ2018, 2018-12-21 00:00:00)
2018-10-01 (SPZ2018, 2018-12-21 00:00:00)
У меня есть повторяющиеся contractID
с, и я хочу эффективно выполнить операцию с этими идентификаторами, например:
def query(df, tup, startDate, endDate):
ID = tup[0]
ExpirationDate = tup[1]
panel = df.loc[ID].loc[ExpirationDate].loc[startDate:endDate]
return panel
df = pd.DataFrame()
print('acquiring daily data...')
for tup in contractUse['contractID'].unique():
panel = query(rawData, tup, startDate, endDate)
if df.empty:
df = panel
else:
df = df.append(panel, verify_integrity=False)
return df
Где contractUse
- датафрейм, представленный выше. Я только хочу перебрать уникальные значения. Когда я перебираю уникальные значения, мне нужно получить значение индекса, когда это уникальное значение началось, и значение индекса, когда это уникальное значение остановилось. Затем я передаю startDate
и endDate
уникального значения моей функции query
. Есть ли быстрый способ сделать это в пандах?