Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算数据帧A的每一行在另一个数据帧的多个元素的每一行中出现的时间_Python_Pandas_Count - Fatal编程技术网

Python 计算数据帧A的每一行在另一个数据帧的多个元素的每一行中出现的时间

Python 计算数据帧A的每一行在另一个数据帧的多个元素的每一行中出现的时间,python,pandas,count,Python,Pandas,Count,我有一个dataframe a,有一列,2009行,每行有许多元素,如: Text 0 first, german, television,abide, called, ladies, dai... 1 party, day, hanover, cdu, first, soft, bundest... 2

我有一个dataframe a,有一列,2009行,每行有许多元素,如:

                          Text
                  0       first, german, television,abide, called, ladies, dai...
                  1       party, day, hanover, cdu, first, soft, bundest...
                  2       evening,ability chancellor, merkel, berlin, israeli, ...
                  3       egypt, followers, opponent, president, must, v...
                  4       eu, commission, wants, high, youth, unemployme...
                  5       european, aviation, armament, company, eads, s...
                   ....
和另一个数据帧B,1900行,每行只有一个元素

                               Word
              0                 abide
              1               ability
              2                 able
              3               abound
              4              absolve
              5            absorbent
              6           absorption
              7            abundance
             ....
我想计算数据帧
B的所有行中的元素在数据帧
A的每行中出现的次数

      Word=B.Word
      List=Word.tolist()

      #Option 1
      A.Text.str.extractall(
'({})'.format('|'.join(str(v) for v in List))
  ).groupby(level=0) 
 [0].value_counts().unstack(fill_value=0)

  Option2
df=A.Text.str.extractall('({})'.format('|'.
join(map(str, List))))\                       
.iloc[:,0].str.get_dummies().sum(level=0)
我尝试了上面的两个选项,但结果返回了一个新的数据帧,数据帧a和数据帧B的行数都在减少。 所以,也许他们不是完成这项任务的正确方法。 有什么建议吗


提前谢谢

我可能会得到你需要的东西。如果您需要
dfB
中出现在
dfA
每行中的项目数:

dfA.Text.str.split(',\s?', expand=True).stack().isin(dfB.Word.tolist()).groupby(level=0).sum()
dfA.Text.str.split(',\s?', expand=True).stack().value_counts().reindex(dfB.Word)
如果您需要
dfB
中的项目在
dfA
中的任何位置出现的次数,则为:

dfA.Text.str.split(',\s?', expand=True).stack().isin(dfB.Word.tolist()).groupby(level=0).sum()
dfA.Text.str.split(',\s?', expand=True).stack().value_counts().reindex(dfB.Word)
样本数据 代码
还有一个小问题:如果我想看到细节,我的意思是在总结之前,我想看看dfb中的每个单词在dfa的每一行中出现了多少次。我可以从您的代码中修改哪些代码。dfA.Text.str.split(',\s?',expand=True).stack().isin(dfB.Word.tolist()).groupby(level=0)。不起作用。你上面的代码真的救了我一天。谢谢