Python相当于Excel Countif

Python相当于Excel Countif,python,python-3.x,pandas,Python,Python 3.x,Pandas,我曾经尝试过不同的解决方案,但到目前为止没有得到预期的结果 我有两个数据帧,df1和df2,它们都包含一个名为'fb rq id'的列 df2中的行数远远多于df1,我想检查df2['fb rq id']中的哪些值在df1['fb rq id']中,以及它在那里出现的次数,在df2上创建一列,列中的值在df1中的次数 如果您知道如何在df2.['fb rq id']是否在df1['fb rq id']中创建只包含二进制信息的列,这也会有所帮助 谢谢 这个怎么样 df2['count_from_d

我曾经尝试过不同的解决方案,但到目前为止没有得到预期的结果

我有两个数据帧,
df1
df2
,它们都包含一个名为
'fb rq id'
的列

df2
中的行数远远多于
df1
,我想检查
df2['fb rq id']
中的哪些值在
df1['fb rq id']
中,以及它在那里出现的次数,在
df2
上创建一列,列中的值在
df1
中的次数

如果您知道如何在
df2.['fb rq id']
是否在
df1['fb rq id']
中创建只包含二进制信息的列,这也会有所帮助

谢谢

这个怎么样

df2['count_from_df1'] = [list(df1['fb rq id']).count(id) 
                         if id in df1['fb rq id'] else 0 
                         for id in df2['fb rq id']]

“如果您知道如何仅使用二进制信息创建列,无论df2。['fb rq id']是否在df1['fb rq id']中,这也会有所帮助。”这是
df2['id'].isin(df1['id'])
,如果您将
.sum()
放在末尾,您将得到出现的总数。或者
df1['rb rq id'].value\u counts()[df2['rb rq id']
在某些情况下可能更有效。@YakymPirozhenko这不会为df2中的值而不是df1中的值提高KeyError吗?@ayhan啊,你是right@YakymPirozhenko可能类似于
df2['rb rq id'].map(df1['rb rq id'].value_counts())