Python 如何选择基于另一列计算一列中的数据?

Python 如何选择基于另一列计算一列中的数据?,python,pandas,numpy,Python,Pandas,Numpy,我有两个数据帧,如下所示: df1 = DataFrame({'a': np.random.randint(10, size=2)}) df2 = DataFrame({'a': np.random.randint(10, size=100)}) df1中有两个数字,我想计算df2中这两个数字的数量。答案在df1['a']的右边 我在中使用,但存在错误:值的长度与“”索引的长度不匹配 谁能告诉我如何解决这个问题 我使用了df2['a'].isin(df1['a']].sum(),但它给出了两个

我有两个数据帧,如下所示:

df1 = DataFrame({'a': np.random.randint(10, size=2)})
df2 = DataFrame({'a': np.random.randint(10, size=100)})
df1中有两个数字,我想计算df2中这两个数字的数量。答案在df1['a']的右边

我在中使用,但存在错误:值的长度与“”索引的长度不匹配

谁能告诉我如何解决这个问题

我使用了df2['a'].isin(df1['a']].sum(),但它给出了两个数字加在一起的结果

我想要的结果是:

No Amount 8 3 1 2 不多 8 3 1 2 而不是:

No Amount 8 5 1 5 不多 8 5 1 5
如果我理解正确:

In [22]: df2['a'].isin(df1['a']).sum()
Out[22]: 18

如果我理解正确:

In [22]: df2['a'].isin(df1['a']).sum()
Out[22]: 18
添加
sum

df2.a.value_counts().reindex(df1.a).sum()
Out[370]: 16
添加
sum

df2.a.value_counts().reindex(df1.a).sum()
Out[370]: 16

谢谢你的回答。我使用你的方法,但结果不正确。问题是两个金额相同,一个是正确的,但另一个是不正确的,数字是相同的。谢谢你的回答。我使用你的方法,但结果不正确。问题是两个金额相同,一个是正确的,但另一个是不正确的,数字是相同的。谢谢你的回答。但还是有一个问题,两个数量是一样的,一个是正确的,一个是错误的wrong@yuchenhuang检查我的代码的第一行…它完美地解决了我的问题,真的非常感谢你的时间@如果是这样的话,你能接受吗?我试着用在我的真实案例中,但至少我知道这个函数,我认为我最终可以解决这个问题。谢谢,谢谢,这个问题花了我整个下午的时间!谢谢你的回答。但还是有一个问题,两个数量是一样的,一个是正确的,一个是错误的wrong@yuchenhuang检查我的代码的第一行…它完美地解决了我的问题,真的非常感谢你的时间@如果是这样的话,你能接受吗?我试着用在我的真实案例中,但至少我知道这个函数,我认为我最终可以解决这个问题。谢谢,谢谢,这个问题花了我整个下午的时间!