Python 按大熊猫分组的值计数

Python 按大熊猫分组的值计数,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我是熊猫的新手,我希望能够获得每个人的实例数量,并将其作为列输入另一个数据帧。在按用户列创建组之前,我已经从数据帧中删除了NaN值 我试过了,但似乎不起作用 DF["NumInstances"] = userGrp["user"].value_counts() 我在网上查过了,但似乎找不到解决办法,请帮忙 编辑:样本数据和预期结果 [{"user" : "4", "Instance": &quo

我是熊猫的新手,我希望能够获得每个人的实例数量,并将其作为列输入另一个数据帧。在按用户列创建组之前,我已经从数据帧中删除了NaN值

我试过了,但似乎不起作用

DF["NumInstances"] = userGrp["user"].value_counts()
我在网上查过了,但似乎找不到解决办法,请帮忙

编辑:样本数据和预期结果

[{"user" : "4",
"Instance": "21"},
 {"user" : "4",
"Instance": "6"},
{"user" : "5",
"Instance" : "546453"}]
预期成果:

数据帧=

[{"user":"4",
 "NumInstances" : "2"},
 {"user":"5",
 "NumInstances" : "1"}]

因此,基本上计算每个用户在数据项中出现实例的次数。

如果DF是数据集的名称,“user”是要分组的列的名称,请尝试:

count=DF.groupby(“用户”).count()


打印(计数)

我使用了以下解决方案,该解决方案将创建一个新的数据框,其中包含名为“user”和“NumInstances”的列:

df_counts=df.groupby(['user']).size().reset_index(name='NumInstances'))

希望有帮助。

根据您的示例输入,您可以执行以下操作:

In [2535]: df = pd.DataFrame([{"user" : "4", 
      ...: "Instance": "21"}, 
      ...:  {"user" : "4", 
      ...: "Instance": "6"}, 
      ...: {"user" : "5", 
      ...: "Instance" : "546453"}])  

In [2539]: df.groupby('user', as_index=False).count()
Out[2539]: 
  user  Instance
0    4         2
1    5         1

忘了提到我需要它的顺序是由组定义的,这样我就可以将用户与实例数匹配请提供一个带有预期输出的示例数据框输入。@MayankPorwal刚刚在中添加了这些编辑。谢谢你的邀请advice@AgentArachnid我已经提出了答案。如果有帮助,请告诉我。我遇到了以下错误:“method”对象不是subscriptableYeah,我做了一点小小的修改,它似乎起了作用:InstancePerUser.groupby('user',as_index=False)['Instance'].count()@AgentArachnid很棒。如果有效的话,请考虑将其进行投票并将其标记为接受。