Цель: В каждой строке 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'