векторизация петли в пандах - PullRequest
0 голосов
/ 27 апреля 2018

Я безуспешно пытался векторизовать следующее:

Рассмотрим два кадра данных. Одним из них является список дат:

cols = ['col1', 'col2']

index = pd.date_range('1/1/15','8/31/18')

df = pd.DataFrame(columns = cols )

В настоящее время я выполняю циклы через df и получаю счетчики всех строк, которые меньше или равны указанной дате, с моим основным (большим) фреймом данных df_main

for x in range(len(index)):
    temp_arr = []

    active = len(df_main[(df_main.n_date <= index[x])]

    temp_arr = [index[x],active]

    df= df.append(pd.Series(temp_arr,index=cols) ,ignore_index=True)

Есть ли способ векторизовать вышесказанное?

1 Ответ

0 голосов
/ 28 апреля 2018

Что-то вроде следующего

#initializing
mycols = ['col1', 'col2']
myindex = pd.date_range('1/1/15','8/31/18')
mydf = pd.DataFrame(columns = mycols )

#create df_main (that has each of myindex's dates minus 10 days)
df_main = pd.DataFrame(data=myindex-pd.Timedelta(days=10), columns=['n_date'])

#wrap a dataframe around a list comprehension
mydf = pd.DataFrame([[x, len(df_main[df_main['n_date'] <= x])] for x in myindex])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...