比较列表A和列表B并计算列表B中列表A的每个项目的总数

时间:2015-10-20 19:03:48

标签: python pandas

我有2个名单; a和b。 a包含用户名,每个用户名在此列表中是唯一的。我从下面的excel文件中读取了用户名。

a = pd.read_excel("user_name.xlsx", 'Sheet1')

You may see user_name output below.

另一个清单; b也有用户名,但名称不是唯一的,有些名称不止一次列出。 you may see list b sample as below.

我想根据列表a计算并打印列表b中的用户名数。例如:列表len为700,列表b len为300.我想得到如下结果。这意味着username1仅在列表b中列出一次,username2不在列表b中,username699在列表b中列出5次,等等。

username1    1
username2    0
. 
.
. 
username699  5 
username700  2 

我在下面尝试,但它没有使用列表a作为索引。任何人都可以建议如何解决这个问题?

df = pd.DataFrame({'username':list(b)})
da = df.groupby('username').count()

1 个答案:

答案 0 :(得分:0)

正如我在评论中所提到的,你可以这样做,或者如果你坚持使用熊猫,你可以这样做:

df = pd.DataFrame({'username':list(b)})
for i,row in enumerate(a.values):
    data = df[df['username'] == a.index[i]]
    print data.groupby(['username'])['username'].count()