我有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
我想检查df2.value中是否存在df1.date的值。如果是,则df1 ['number']列将计算出现次数。 Df1的结果应如下所示:
date number
jan-16 1
feb-17 2 (=> for instance, feb-17 has found 2 times in Df2['date'])
我该怎么做?我需要更改日期格式吗?
我先谢谢你
答案 0 :(得分:0)
您需要按df2.date分组,然后计算2 比您可以在'date1'之前将df df2合并到df1
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')