我有两个数据框如下:
df1 = DataFrame({'a': np.random.randint(10, size=2)})
df2 = DataFrame({'a': np.random.randint(10, size=100)})
df1中有两个数字,我想计算两个数字'金额为df2。答案在df1的右边[' a']。
我用于in,但是有一个错误:值的长度与'的长度不匹配'指数。
任何人都可以告诉我如何解决这个问题?
我使用df2 [' a']。isin(df1 [' a'])。sum(),但它给出了两个数字一起的结果。
我想要的结果如下:
No Amount 8 3 1 2
而不是:
No Amount 8 5 1 5
答案 0 :(得分:2)
df2.a.value_counts().reindex(df1.a)
Out[369]:
a
4 11
5 5
Name: a, dtype: int64
添加sum
df2.a.value_counts().reindex(df1.a).sum()
Out[370]: 16
答案 1 :(得分:1)
如果我理解正确:
In [22]: df2['a'].isin(df1['a']).sum()
Out[22]: 18