В настоящее время я просматриваю номера со следующим кодом. Для каждого элемента в dataframe
я устанавливаю несколько условий, для которых можно суммировать, но это самая медленная часть созданного отчета. Есть ли более быстрый способ идентифицировать все элементы в кадре данных, которые начинаются с определенной строки?Найти все элементы в столбце dataframe, который начинается с строки
for idx, eachRecord in attributionCalcDF.T.iteritems():
if (attributionCalcDF['SEC_ID'].ix[idx] == 0):
currentGroup = lambda x: str(x).startswith(attributionCalcDF['GROUP_LIST'].ix[idx])
currentGroupArray = attributionCalcDF['GROUP_LIST'].map(currentGroup)
attributionCalcDF['ROLLUP_DAILY_TIMING_IMPACT'].ix[idx] = (
attributionCalcDF['DAILY_TIMING_IMPACT'][(attributionCalcDF['SEC_ID'] != 0) &
(currentGroupArray) &
(attributionCalcDF['START_DATE'] == attributionCalcDF['START_DATE'].ix[idx])].sum())
attributionCalcDF['ROLLUP_DAILY_STOCK_TO_GROUP_IMPACT'].ix[idx] = (
attributionCalcDF['DAILY_STOCK_TO_GROUP_IMPACT'][(attributionCalcDF['SEC_ID'] != 0) &
(currentGroupArray) &
(attributionCalcDF['START_DATE'] == attributionCalcDF['START_DATE'].ix[idx])].sum())
Большое спасибо Уэсу. Улучшено время этой функции на ~ 40%. Векторизованные функции строк? ... очень с нетерпением жду этого! –