Как проверить и посчитать, существует ли значение одного фрейма данных в другом фрейме данных? - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть 2 кадра данных, добавленных с помощью pd.read_csv. Я создаю фрейм данных так:

df1= pd.read_csv('exo.csv', delimiter=';', encoding='latin1', parse_dates=['date'], dayfirst=True)

2 типа данных: `

df1:
    date     number
  jan-16 
  feb-17
  march-17 
  april-17

Df2:
   date     
  09/01/2016
  08/02/2017
  15/02/2017
  13/03/2017 
  25/08/2017

Я бы хотел проверить, существует ли значение df1.date в df2.value . Если да, столбец df1 ['number'] будет считать количество появлений. Результат Df1 должен быть таким:

date     number
jan-16     1
feb-17     2  (=> for instance, feb-17 has found 2 times in Df2['date'])

Как я могу это сделать? мне нужно изменить формат даты?

Заранее благодарю,

1 Ответ

0 голосов
/ 24 апреля 2019

вам нужно сгруппировать по df2.date, а затем сосчитать 2 , после чего вы можете объединить df df2 в df1 по 'date1'

df2['date2'] = pd.to_datetime(df2['date'],format='%d/%m/%Y')
df2['date1'] = df2.date2.dt.strftime('%b-%y').astype(str).str.lower()
b = pd.DataFrame(df2.groupby('date1')['date'].count())
b.columns = ['number']
b = b.reset_index()

, а затем объединить

df1['date']=df1.date.str.lower()
df1.merge(b,right_on='date1' , left_on='date',how='left')
...