Поиск номеров индексных строк всех общих дат между двумя столбцами в Python

#python #pandas

Вопрос:

У меня есть набор из 2 кадров данных, которые я импортировал через excel. В принципе, у меня есть список дат и цен акций, которые отличаются для обоих этих фреймов данных (один начинается в 1990 году, другой в 2007 году). Я хочу найти общие даты между обоими этими фреймами данных и объединить их, чтобы у меня был один столбец дат и соответствующие цены акций из фреймов данных 1 и 2.

 ff = pd.read_excel('Europe_5_Factors_Daily.xlsx',sheet_name='Factors') pp = pd.read_excel('Europe_5_Factors_Daily.xlsx',sheet_name='Sheet1') ff =ff.iloc[:,0:4] idx = ff['Date'].reset_index(drop=True) == pp["Date"].reset_index(drop=True).tolist() print(idx)  

Я получаю следующее сообщение об ошибке : Ошибка значения: (‘Длины должны совпадать для сравнения’, (8132,), (3457,)). Кто-нибудь знает, что здесь пошло не так? По сути, я пытаюсь найти номера индексных строк общих дат, чтобы затем получить эквивалентные строки.

Ответ №1:

 import pandas as pd  ff = pd.read_excel('Europe_5_Factors_Daily.xlsx',sheet_name='Factors') pp = pd.read_excel('Europe_5_Factors_Daily.xlsx',sheet_name='Sheet1')  def find_common_dates(df1,df2):  df1_dates = df1['Date'].tolist()  df2_dates = df2['Date'].tolist()  common_dates = list(set(df1_dates) amp; set(df2_dates))  return common_dates  

Тогда беги

 find_common_dates(ff,pp)