Метод запроса данных - PullRequest
0 голосов
/ 24 апреля 2020

Цель: В каждой строке Dataframe-2 импортировать значение «Закрыть», соответствующее его «имени столбца», дате и времени с «Код», «Дата» и «Время» в Dataframe-1 соответственно .

Проблема: df.query [] не получает данные из Dataframe-1 и возвращает 'not found'.

Подробности: У меня есть два кадра данных: olddf (Dataframe-1) с 5,8 миллионами строк, содержащих данные о запасах в 90 scrips, и df (Dataframe-2) со всеми scrips в качестве имен столбцов и дополнительных столбцов даты и времени.

Я хочу выполнить поиск, используя запрос в Dataframe-1, сопоставление значений с Dataframe-2 - имя столбца и дата и время каждой строки.

Он не возвращает никакого результата, даже если в кадре данных -1 содержит значение. Тип данных обоих Dataframes идентичен. Пробелы также удаляются.

ПРОВЕРКА СООТВЕТСТВИЯ ДАННЫМ: Информация о olddf (Dataframe-1):

Дата не нулевой объект, Время не нулевой объект, код ненулевой объект # это имя скрипта в этом Dataframe-1 Закрыть ненулевое значение float64 # цена закрытия акции

Информация о df (Dataframe-2 или Target df):

Уникальные значения 'Code' из Dataframe-1 в качестве имен столбцов - ненулевой объект, дата ненулевой объект, время ненулевой объект

MYCODE

import stock # another module which returns two dataframes. Running fine.

df=stock.split_data() #creates Dataframe-2 with 90 columns (88 for scrip names and date, time)
olddf=stock.read_data() #creates Dataframe-1 (9 columns - Code, Date, Time, Close,...)

for cols in df.columns:   
    if (cols != 'Date') & (cols !='Time'):           
        for index, row in df.iterrows():        

            try:
                close_loc = olddf.query("Code == cols & Date == row['Date'] & Time == row['Time']").index
                close_price = olddf['Close'][close_loc]
                row[cols] = close_price

            except:
                row[cols] = 'NaN'
...