熊猫中按组的价值计数

时间:2020-06-10 15:17:12

标签: python pandas dataframe pandas-groupby

我是熊猫的新手,我希望能够获取每个人的实例数并将其作为一个列馈入另一个Dataframe中。在按用户列进行分组之前,我已经从数据框中删除了NaN值

我已经尝试过了,但是似乎没有用

DF["NumInstances"] = userGrp["user"].value_counts()

我已经浏览了互联网,但似乎找不到解决方案,请提供帮助。

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

[{"user" : "4",
"Instance": "21"},
 {"user" : "4",
"Instance": "6"},
{"user" : "5",
"Instance" : "546453"}]

预期结果:

DataFrame =

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

因此,基本上可以算出每个用户跨数据条目执行实例的次数。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

count = DF.groupby(“ user”)。count()

打印(计数)

答案 2 :(得分:0)

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

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

希望有帮助。

相关问题